3
我使用npm脚本(请参阅下面的npm文件)通过watchify
观察文件的更改,然后在编译后进行编译和通知。然而,发生的情况是watchify任务运行(第一次运行需要40秒),然后立即调用notify:js
任务。我希望在watchify完成编译后调用notify:js
。节点脚本:使用watchify链接命令
{
"dependencies": {
"react": "^0.14.3",
"react-dom": "^0.14.3"
},
"devDependencies": {
"babel-preset-es2015": "^6.1.18",
"babel-preset-react": "^6.1.18",
"babelify": "^7.2.0",
"browserify": "^12.0.1",
"exorcist": "^0.4.0",
"osx-notifier": "^0.2.2",
"watchify": "^3.6.1"
},
"scripts": {
"watch": "watchify src/app.js -o build/bundle.js -t [ babelify --presets [ es2015 react ] ] -dv | npm run notify:js",
"compile:js": "browserify -e src/app.js -d -o build/bundle.js -t [ babelify --presets [ es2015 react ] ] -v",
"notify:js": "osx-notifier --title 'JavaScript Compiled' --message 'JavaScript compiled to build/bundle.js' --type pass"
}
}
我试过下面的命令变体。
watchify src/app.js -o build/bundle.js -t [ babelify --presets [ es2015 react ] ] \
-dv & npm run notify:js
上述命令与|
运算符相同。
watchify src/app.js -o build/bundle.js -t [ babelify --presets [ es2015 react ] ] \
-dv && npm run notify:js
上述命令与&
运算符相同。
我无法在watchify documentation中看到我想要实现的任何选项。我在这里错过了什么,或者这是不可能的,我试图做到这一点?
watchify在后台运行,所以我认为你不能用它来以一种简单的方式做你想做的事情。如果你通过browserify替换watchify,那么你尝试过的最后一个变体命令(用'&&')应该可以工作;但是您会忽略watchify重新编译变更文件的好处。否则,请尝试观察更改son bundle.js,并且(只有)发生时才启动通知程序... –
您是否考虑过使用类似['gulp'](http://gulpjs.com/)的内容? – robertklep
@robertklep我已经使用了'gulp'和'grunt',但我正在从这些工具中转而采用这种方法。 – Enijar