Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/daniel-dx/sketch-plugin-demo
https://github.com/daniel-dx/sketch-plugin-demo
Last synced: 27 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/daniel-dx/sketch-plugin-demo
- Owner: daniel-dx
- Created: 2020-05-07T11:55:59.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T05:14:12.000Z (almost 2 years ago)
- Last Synced: 2024-10-03T07:55:13.541Z (about 1 month ago)
- Language: JavaScript
- Size: 978 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# sketch-plugin-demo
## Installation
- [Download](../../releases/latest/download/sketch-plugin-demo.sketchplugin.zip) the latest release of the plugin
- Un-zip
- Double-click on sketch-plugin-demo.sketchplugin## Development Guide
_This plugin was created using `skpm`. For a detailed explanation on how things work, checkout the [skpm Readme](https://github.com/skpm/skpm/blob/master/README.md)._
### Usage
Install the dependencies
```bash
npm install
```Once the installation is done, you can run some commands inside the project folder:
```bash
npm run build
```To watch for changes:
```bash
npm run watch
```### Custom Configuration
#### Babel
To customize Babel, you have two options:
- You may create a [`.babelrc`](https://babeljs.io/docs/usage/babelrc) file in your project's root directory. Any settings you define here will overwrite matching config-keys within skpm preset. For example, if you pass a "presets" object, it will replace & reset all Babel presets that skpm defaults to.
- If you'd like to modify or add to the existing Babel config, you must use a `webpack.skpm.config.js` file. Visit the [Webpack](#webpack) section for more info.
#### Webpack
To customize webpack create `webpack.skpm.config.js` file which exports function that will change webpack's config.
```js
/**
* Function that mutates original webpack config.
* Supports asynchronous changes when promise is returned.
*
* @param {object} config - original webpack config.
* @param {object} entry - entry property from webpack config
* @param {boolean} entry.isPluginCommand - whether the config is for a plugin command or a resource
**/
module.exports = function(config, entry) {
/** you can change config here **/
};
```To use the polyfills or the mocks for certain Node.js globals and modules use the `node` property.
Visit [the official documention](https://webpack.js.org/configuration/node/) for available options.
```js
if(entry.isPluginCommand ){
config.node = {
setImmediate: false
}
} else {
config.node = false;
}
```### Debugging
To view the output of your `console.log`, you have a few different options:
- Use the [`sketch-dev-tools`](https://github.com/skpm/sketch-dev-tools)
- Open `Console.app` and look for the sketch logs
- Look at the `~/Library/Logs/com.bohemiancoding.sketch3/Plugin Output.log` fileSkpm provides a convenient way to do the latter:
```bash
skpm log
```The `-f` option causes `skpm log` to not stop when the end of logs is reached, but rather to wait for additional data to be appended to the input
### Publishing your plugin
```bash
skpm publish
```(where `bump` can be `patch`, `minor` or `major`)
`skpm publish` will create a new release on your GitHub repository and create an appcast file in order for Sketch users to be notified of the update.
You will need to specify a `repository` in the `package.json`:
```diff
...
+ "repository" : {
+ "type": "git",
+ "url": "git+https://github.com/ORG/NAME.git"
+ }
...
```