使用没有全局吞噬的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的干预)

       

网上收集的解决方案 "使用没有全局吞噬的gulp //编辑:并且不链接到bin js文件"

在package.json中

 "scripts": { "gulp": "gulp" }, 

然后这个命令npm run gulp另外npm提供了将额外parameter passing给你的命令的能力。 这只是npm> = 2.0的情况

更新:没有bin链接

您可以检查node_modules/.bin/gulp node_modules/gulp/bin/gulp.jsnode_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的依赖