phi*_*unz 16 javascript node.js npm gulp
我有一个gulpfile.js在键入gulp命令行时完美运行.
所有gulpbash命令实际上都是调用package.json >> bin >> gulp全局安装的gulp中指定的js文件.
现在我想运行没有全局安装gulp的gulpfile,只需键入node gulpfile.js哪个明显失败并且已经经常被提及,尽管gulp在本地安装并且在开头需要gulpfile.js
使用没有cli工具的gulp可以很容易地将gulp用作其他npm插件的一部分.
注意:
当通过gulp cli工具启动此原始gulpfile.js时,需要另一个gulpfile.js从原始gulpfile.js开始工作.
问题:
在不需要全局cli gulp工具的情况下运行/需要gulp的最佳方法是什么(//编辑:或在本地链接到它)?例如,当gulp只是本地安装的依赖项时,能够简单地从另一个js文件中请求它.(换句话说,从JS内部以编程方式启动gulp,无需任何类型的CLI干预)
San*_*ser 35
在package.json中
"scripts": {
"gulp": "gulp"
},
Run Code Online (Sandbox Code Playgroud)
然后这个命令npm run gulp
同样npm提供了将额外参数传递给命令的功能.这只是npm> = 2.0的情况
更新:没有bin链接
您可以查看node_modules/.bin/gulp 或node_modules/gulp/bin/gulp.js文件以了解如何开始吞咽(第129行很有趣)
我认为这应该有效:
var gulp = require('gulp');
gulp.task('default', function() {
console.log('do something');
});
gulp.start.apply(gulp, ['default']);
Run Code Online (Sandbox Code Playgroud)
当你在本地安装它时(npm install --save-dev gulp)你可以通过调用来运行它./node_modules/.bin/gulp all
或者您可以定义npm脚本,然后运行它npm run gulp
通过添加这个 package.json
"scripts": {
"gulp": "gulp"
}
Run Code Online (Sandbox Code Playgroud)
在package.json中添加以下内容:
"scripts": {
"gulp": "node ./node_modules/gulp/bin/gulp.js <task-name>"
}
Run Code Online (Sandbox Code Playgroud)
并通过键入npm run gulp从命令行运行.
这消除了全局安装gulp的依赖性
同时,由于npm> = 5.2.0。您可以使用“ npx”来做到这一点:
npx gulp
Run Code Online (Sandbox Code Playgroud)
它在./node_modules/.bin中执行二进制文件
顺便说一句,它具有执行未安装工具的能力,这些工具只是临时安装,执行然后删除。
查看KatKatán的帖子:npx 简介:npm包运行器
| 归档时间: |
|
| 查看次数: |
17729 次 |
| 最近记录: |