sketch-builder
A utility to transpile JavaScript to CocoaScript
Last updated 3 years ago by mathieudutour .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install sketch-builder 
SYNC missed versions from official npm registry.

Sketch Builder

A utility to transpile JavaScript to CocoaScript

Why?

Sketch Plugins are made possible by CocoaScript, a bridge that lets you use Objective-C/Cocoa code from an external script written in JavaScript. The bridge takes care of the translation between JavaScript and Cocoa.

This is great.

You can use two different styles when writing your scripts: dot notation and bracket notation. Which means that you can use var l = a.length() as well as var l = [a length].

Ok, well I guess it could be useful for Objective-C devs (even though Swift look a lot more like JavaScript than good old Obj-c). Unfortunately, if you use the bracket notation, you won't be able to use any kind of javascript linter :sad:

To import functions defined in another file, you can use the syntax @import 'my-shared-file.cocoascript'

Wait, what? Do I really need to give up on explicit dependency injection? Do I really need to give up on the npm ecosystem? Do I really need to use a non-JavaScript syntax for that and break all linters?

Oh, and you can't use console.log, you need to use log.

Solution

Using a transpiler to build CocoaScript files from JavaScript files.

It means that you can:

  • write in in ES6+,
  • require any npm modules,
  • use your favorite linter (here is an ESLint config for sketch),
  • use console.log (you're welcome).

Heck, you can even share sketch specific modules on npm (here is one for example), no more copy/pasting from one project to another!

How

You project needs to look like this:

/
  my-plugin.sketchplugin/
    Content/
      Resources/
        any-resource.png
  src/
    lib/
      any-shared-code.js
    commands/
      any-command.js
    manifest.json
  package.json

Install sketch-build:

npm i -D sketch-builder

Add a script in your package.json:

"scripts": {
  "build": "sketch-builder src/commands -o my-plugin.sketchplugin -m src/manifest.json"
}

You probably want to add this line to your .gitignore:

my-plugin.sketchplugin/Contents/Sketch

Example

See a real life example here: https://github.com/mathieudutour/git-sketch-plugin

Current Tags

  • 0.2.0                                ...           latest (3 years ago)

3 Versions

  • 0.2.0                                ...           3 years ago
  • 0.1.1                                ...           3 years ago
  • 0.1.0                                ...           3 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 0
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |