我是nodejs和gulp的新手。我正在一个nodejs项目中工作,在该项目中,我必须在所有文件上运行jslint。我为此使用了gulp。
我的问题是,为了在cli上运行gulp,我不想在全球范围内安装gulp,也不想更新我的path变量,因此,我已使用该软件包在本地项目中安装了gulp和其他节点模块。 json文件
cd myproject
npm安装
由于我不想在全球范围内安装gulp,并且想运行本地gulp,所以我已在package.json文件中添加了脚本,如this问题中给出的那样
{
"name": "",
"version": "1.0.0",
"main": "index.js",
"private": true,
"dependencies": {
"async": "1.5.0"
},
"devDependencies": {
"gulp": "^3.9.0",
"gulp-jslint": "^0.2.2"
},
"scripts": {
"gulp": "./node_modules/.bin/gulp" // is this correct?
}
}
[在myproject文件夹中添加了一个gulpfile.js
var gulp = require('gulp');
// include plug-ins
var jslint = require('gulp-jslint');
// JS hint task
gulp.task('lint', function() {
gulp.src('./common/srp/*.js')
.pipe(jslint())
.pipe(jslint.reporter('default'));
});
gulp.task("default", ["lint"]);
但是现在在myproject文件夹中的命令行上,当我运行gulp和gulp lint时出现错误
user1-VirtualBox:〜/ myproject $ gulp皮棉
/ usr / local / node-v0.10.26-linux-x64 / bin / gulp没有这样的文件或目录
它正在全局节点模块中寻找吞噬。
有没有一种方法可以使gulp在cli上运行而无需全局安装和更新PATH变量。
任何帮助将不胜感激谢谢
您可以在node_modules/.bin
中找到npm安装的任何可执行文件。因此,您可以使用:
使用此命令在C:\ Users \%USERNAME%中全局安装gulp
使用您的代码,您应该可以运行命令npm run gulp
package.json
中定义的脚本可通过NPM,即npm run-script gulp
访问。我想您正在尝试运行普通的旧版gulp
,由于您未在全局安装它,因此应该
就像@snorberhuis说的。我使gulp全局工作的唯一方法是手动调用gulp我正在Jenkins环境中构建
只是另一个可以在本地使用但会给您全球性感觉的选择。将以下内容添加到您的shell配置中,即~/.bash_profile
export PATH=$PATH:./node_modules/.bin
您必须source
该文件,执行rehash
或只是打开一个新的Shell,然后gulp
(以及该文件夹中的任何其他脚本)都可以用作全局命令。
尝试:
检查您的项目node_modules/.bin
文件夹,并确保gulp在其中。我遇到的情况是,我从来没有找到原因。如果不存在,请尝试在本地重新安装gulp,然后查看它是否显示。如果那不起作用,并且您对问题感到厌倦,可以肯定地使用gulp-cli
软件包进行修复,但这不是您have
我在可能的地方place后,这样做的方法只是转到您的应用程序并安装如下所示的npm依赖项:
我知道的最简单的解决方案是使用npm bin
: