When comparing NPM vs Sketch, the Slant community recommends Sketch for most people. In the question“What are the best web design tools?” Sketch is ranked 5th while NPM is ranked 9th. The most important reason people chose Sketch is:
Sketch is essentially a version of Photoshop built from the ground up to suit the workflow of web designers.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Compatible with any CLI
NPM is compatible with any CLI the developer wants to use.
Pro Plenty of helpful NPM modules/plugins
NPM has a strong community that has developed plenty of libraries and plugins that are useful to developers.
Pro Very concise configuration
NPM scripts require fewer lines of code to run a given task. This is true even when it's for running build processes. Using Unix pipes lots of tasks can be reduced to one-liners.
Pro Does not need any wrapper modules
With other task runners, you need to install wrapper modules for tools you may already have installed. When using NPM that's not necessary, to use the tools you need, just install them directly through NPM.
Pro Part of node.js distribution
Pro You're most likely using NPM already
Pro Uncomplicated package management system
When it works...
Pro Designed specifically for web and mobile UI design & workflows
Sketch is essentially a version of Photoshop built from the ground up to suit the workflow of web designers.
Pro Active community with a lot of resources
Sketch is hugely popular among designers so there are a lot of well maintained community resources for everything from iPhone frames to iOS/Android UI elements & icons.
Pro Clean UI
Reactive panels keep the UI for Sketch clean from the sort of clutter the panel system in Photoshop suffers from. The panels in Sketch change based on the object in question, saving you from having to have a multiple separate panels.
Pro Symbols and shared styles
Sketch lets you re-use the same design in multiple places, with changes synced throughout the various places it is used. You can also create text styles to sync typography changes.
Pro "Artboards" are great for working on multiple views simultaneously
Artboards let you easily work on multiple views side by side. Great for having a separate artboard on each page for the various responsive sizes.
Pro Vector based yet pixel aware
You can rescale assets without quality loss, easily export x2 assets for retina designs and design high quality icons & artwork. Being pixel aware lets you set a grid and snap objects to it as well as round to the nearest pixel edge to clean up your layers.
Pro Makes it easy to export assets
Sketch has a built in exporter that supports PDF, JPG and PNG.
Pro Built-in grid system
You can set the square grid to whatever dimensions you like as well as set thicker lines every x blocks. You can also configure the color of the lines to make them as obvious or subtle as you wish and toggle the grid with a keyboard shortcut (crtl+g).
Pro "Mirror" makes it really easy to test designs on multiple devices
Mirror lets you connect your iPhone to sketch and see how your current artboard looks on mobile. It's really useful as you can live check changes which lets you rapidly iterate mobile design.
Pro Easily align layers with smart guides
Holding down alt will show the smart guides that show the distances between any layer you hover over to nearby layers or the edges of the artboard. Very useful for checking your spacing or aligning layers.
Cons
Con Custom tasks require additional keyword 'run'
Only a few standard tasks support being executed without the run
keyword (e.g., npm start
vs npm run customtask
)
Con Not a build system, only a task runner
It is supposed to be used for running gulp, webpack or whatever. But it is not supposed to be used as a build system.
Con Passing parameters is awkward
In order to pass additional parameters to npm you must add them after --
(e.g., npm run build -- --custom='foo'
).
Con Badly documented
Less than bare minimum official documentation leaves users in the dark without taking often expensive external courses. Even the --help text has unpluggable gaps. One official source notes the documentation isn't adequate yet nothing has been done to fix this.
Con Lot of issues with authentication and random node problems
Unable to recover from common depencies conflicts consistantly. Error messages are not always helpful to debugging. Doesn't account well for users with different versions of node.
Con Does not run well with Windows
Since a lot of projects that use NPM as a build tool most of the time make use of Bash scripts as well. This means that open source projects that run the command npm run
may run into issues when used in a Windows environment.
Con Doesn't allow you to create build process with complicated logic on its own
In complex heterogeneous app you will quickly migrate to gulp, webpack or whatever leaving to NPM only simple task running responsibility.
Con No Windows support
Con No Linux version
Sketch is currently only available on Mac, which can make it hard to collaborate if you have teammates using Linux.
Con License based payment model
Sketch has recently decided to cease development of major version (2.0, 3.0, 4.0) with free updates in between, and has switched to a license based subscription model. A yearly license costs $99 and includes the latest version of the Sketch software, plus a year of free updates. After this license expires, you can renew for another year of updates - or continue to use the current software without updates.
Con Buggy releases and lack of quality assurance
The fast rate of change means new releases often break files and cause havoc. Duplicate symbols are really bad in the latest releases so you have to keep updating.
Con Very feeble raster tools
You have to go elsewhere if you want something more complex than basic vector masking of raster images.
Con Limited compatibility with Photoshop and Illustrator
Although it is possible to export certain Adobe file types in Sketch, compatibility is mostly hit and miss. For example, some elements seem a little offset in Adobe products.