desc “Node package manager wrapper: yarn” namespace :npm do
desc "Fresh copy of node modules" task :init => ["clean:cache", "clean:temp"] do if File.file?(NPM_FILE) sh "yarn install"; else sh "yarn init" end end desc "Install dependencies" task :install do |task, args| sh "yarn install" end desc "Add a dependency" task :add, [:package] do |task, args| sh "yarn add #{args[:package]}" end desc "Added a dev dependency" task :dev, [:package] do |task, args| sh "yarn add #{args[:package]} --dev" end desc "Remove a dependency" task :remove, [:package] do |task, args| sh "yarn remove #{args[:package]}" end desc "Package version bump" task :bump, [:version] do |t, args| if args[:version] config['version'] = args[:version] File.write( NPM_FILE, JSON.pretty_generate(config) ) end end desc "Publish a package publicly" task :publish do sh %{ npm publish --access=public } end
end