我是nodejs和gulp的新手。我在一个nodejs项目上工作,我必须在所有文件上运行jslint。我正在为此目的使用gulp。
我的问题是,为了在cli上运行gulp,我不想全局安装gulp,也不想更新我的路径变量,所以我在本地项目中安装了gulp和其他节点模块package.json文件
cd myproject
npm install
由于我不想全局安装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 lint
/usr/local/node-v0.10.26-linux-x64/bin/gulp没有此类文件或 目录
它在全局节点模块中寻找gulp。
有没有办法在没有全局安装和更新PATH变量的情况下在cli上运行gulp。
任何帮助将不胜感激 感谢
答案 0 :(得分:17)
您可以在node_modules/.bin
中找到npm安装的任何可执行文件。所以你可以使用以下方式在本地运行gulp:
./node_modules/.bin/gulp
找到更多信息
答案 1 :(得分:5)
package.json
中定义的脚本可通过NPM访问,即npm run-script gulp
。我想你会尝试运行普通的gulp
,应该失败,因为你没有全局安装它。
脚本部分不会自动创建别名,我认为这是你的错误。您可以自己定义一个或创建一个简单的bash脚本,如果您不想每次都输入它。
答案 2 :(得分:5)
使用您的代码,您应该能够运行命令 npm run gulp
请尝试
定义脚本的一种方法是
"scripts": {
"gulp": "gulp"
}
如果您无法在项目中运行gulp命令,请运行
npm link gulp
它会将您的全局安装gulp链接到您的本地项目。然后尝试
gulp -v
如果它显示的是版本,那么你就完成了。现在您可以根据需要运行任何gulp命令。
答案 3 :(得分:1)
执行Windows批处理命令
cd your-app
npm install gulp
执行Windows批处理命令
cd your-app\node_modules\.bin
gulp
答案 4 :(得分:1)
另一种可以在本地工作的替代方案,但会给你全局的感觉。
添加到您的shell配置,即~/.bash_profile
以下内容
export PATH=$PATH:./node_modules/.bin
你必须source
该文件,执行rehash
或者只是打开一个新的shell,然后gulp
(以及该文件夹中的任何其他脚本)将作为全局命令使用。
答案 5 :(得分:1)
尝试:
path_to_node path_to_gulp_js gulp_task
示例:
node\node.exe node_modules\gulp\bin\gulp.js build
答案 6 :(得分:0)
签入您的项目node_modules/.bin
文件夹并确保gulp在那里。我有一个案例,它不存在,我从来没有追查到原因。如果不存在,请尝试在本地重新安装gulp并查看它是否显示。如果这不起作用并且你厌倦了这个问题,那么gulp-cli
包肯定会修复它,但这不应该是你 要做的事情。
答案 7 :(得分:0)
在竭尽所能之后,我这样做的方法只是转到您的应用程序并安装如下所示的npm依赖项:
1- E:\webra-jenkins\Code\trunk\WebRa.Web>npm install
一旦安装了npm,就进入该目录
2- [%Application_path%]\node_modules\.bin
执行gulp并给出文件/任务,如下所示:
3-[%Application_path%]\node_modules\.bin>gulp gulpfile --tasks
就我而言,看到以下几行...我得到内心的快乐
18:06:36] Working directory changed to [%Application_path%]
[18:06:37] Tasks for [%Application_path%]\gulpfile.js
现在您可以一个接一个地运行任务了。
[%Application_path%]\node_modules\.bin>gulp pack-vendor-js
答案 8 :(得分:0)
我知道的最简单的解决方案是使用npm bin
:
`npm bin`/gulp ...
这使您无需对任何路径进行硬编码。
答案 9 :(得分:-3)
使用此命令在C:\ Users \%USERNAME%中全局安装gulp
npm install –g gulp
您可以安装需要使用的任何其他gulp方法。例如:
npm install -g gulp-concat
npm install -g gulp-uglify
npm install -g gulp-replace
然后在您希望使用GULP的目录中。打开命令提示符(Shift + RightClick)然后在本地安装,您将能够执行gulp。
npm install gulp
您可以安装需要使用的任何其他gulp方法。例如:
npm install gulp-concat
npm install gulp-uglify
npm install gulp-replace