以下の環境で確認
Terminal
$ node -v
v7.7.4
$ npm -v
4.4.4
$ yarn -v
yarn install v0.21.3
warning No license field
[1/4] 🔍 Resolving packages...
success Already up-to-date.
✨ Done in 1.76s.
yarn を使うと package.json
の scripts
フィールドに余計なことを書かなくてよくなります。
- yarnpkg/yarn: 📦🐈 Fast, reliable, and secure dependency management.
- 別に $ npm install -g gulp しなくても大丈夫って話。 – Toro_Unit
例えば以下のようなファイル構成だった場合。
Terminal
$ tree .
.
├── gulpfile.js
├── package.json
├── src
│ └── calc.js
└── test
└── calc-test.js
src/calc.js
function add(a, b) {
return a + b;
}
function multiply(a, b) {
return a * b;
}
module.exports = {add, multiply};
test/calc-test.js
var assert = require("assert");
var calc = require("../src-js/calc.js");
describe("calc", function() {
it("add", function() {
assert.equal(4, calc.add(1, 3));
});
it("multiply", function() {
assert.equal(6, calc.multiply(2, 3));
});
});
gulpfile.js
var gulp = require("gulp");
var mocha = require("gulp-mocha");
gulp.task("mocha", function() {
return gulp
.src(["test/*.js"], { read: false })
.pipe(mocha({ reporter: "spec" }));
});
gulp.task("watch", function() {
return gulp
.watch(["src/**", "test/**"], ["mocha"]);
});
package.json
{
"dependencies": {
"gulp": "^3.9.1",
"gulp-mocha": "3.0.1",
"mocha": "^3.2.0"
}
}
package.json
に scripts
フィールドがないので、以下の実行はエラーになります。
Terminal
$ npm run mocha
npm ERR! missing script: mocha
$ npm run gulp mocha
npm ERR! missing script: gulp
でも yarn だと scripts
フィールドがなくても問題なく実行されます。
2017/4/10 追記。
run
が無くても動くことに気づきました。
Terminal
$ yarn run mocha
// or
$ yarn mocha
yarn run v0.21.3
$ "/path/to/project/node_modules/.bin/mocha"
calc
✓ add
✓ multiply
2 passing (12ms)
✨ Done in 0.66s.
$ yarn run gulp mocha
// or
$ yarn gulp mocha
yarn run v0.21.3
$ "/path/to/project/node_modules/.bin/gulp" mocha
[1X:33:00] Using gulpfile /path/to/project/gulpfile.js
[1X:33:00] Starting 'mocha'...
[1X:33:01] Finished 'mocha' after 686 ms
✨ Done in 8.62s.
npm run
でエラーなく実行するには、以下のように scripts
フィールドを追加する必要があります。
package.json
{
〜略〜
},
"scripts": {
"mocha": "mocha",
"gulp": "gulp"
}
}
そんなわけで自分はもっぱら yarn を使ってます。
install
(yarn では add
)も、npm
より速い気がしますし。
でも Github とかで公開するコードでは scripts
フィールドを書いておくと喜ばれるかも。