使用没有全局吞噬的gulp //编辑:并且不链接到bin js文件
在命令行inputgulp时,我有一个gulpfile.js,它完美的运行。
所有的gulp
bash命令实际上都是在全局安装的gulp的package.json >> bin >> gulp
中调用指定的js文件。
现在我想通过inputnode gulpfile.js
来运行没有全局安装的node gulpfile.js
,它显然失败了,并且已经经常被提及,尽pipegulp被安装在本地,并且在gulpfile.js
开头需要
如果不使用cli工具,使用gulp就可以很容易地将gulp作为其他npm插件的一部分。
注意:
当通过gulp cli工具启动这个原始的gulpfile.js时,需要另一个gulpfile.js从原始的gulpfile.js中工作。
题:
什么是运行/需要吞咽的最佳方式,而不需要全球cli gulp工具(//编辑:或在本地链接)? 例如,当gulp只是本地安装的依赖项时,能够从另一个js文件中简单地请求它。 (换句话说,从JS内部以编程方式启动gulp,而不需要任何CLI的干预)
在package.json中
"scripts": { "gulp": "gulp" },
然后这个命令npm run gulp
另外npm提供了将额外parameter passing给你的命令的能力。 这只是npm> = 2.0的情况
更新:没有bin链接
您可以检查node_modules/.bin/gulp
node_modules/gulp/bin/gulp.js
或node_modules/gulp/bin/gulp.js
文件以查看如何启动node_modules/gulp/bin/gulp.js
(第129行很有意思)
我认为这应该工作:
var gulp = require('gulp'); gulp.task('default', function() { console.log('do something'); }); gulp.start.apply(gulp, ['default']);
当你在本地安装( npm install --save-dev gulp
)时,你可以通过调用./node_modules/.bin/gulp all
或者你可以定义一个npm
脚本,并运行npm run gulp
通过添加到package.json
"scripts": { "gulp": "gulp" }
在你的package.json中添加以下内容:
"scripts": { "gulp": "node ./node_modules/gulp/bin/gulp.js <task-name>" }
并通过键入npm run gulp从命令行运行。
这消除了对全球安装gulp的依赖