本地安装的gulp没有在命令行中运行?

use*_*417 20 command-line node.js gulp package.json

我是nodejs和gulp的新手.我在一个nodejs项目上工作,我必须在所有文件上运行jslint.我正在使用gulp用于此目的.

我的问题是,为了在cli上运行gulp,我不想全局安装gulp,也不想更新我的路径变量,所以我使用package.json文件在本地项目中安装了gulp和其他节点模块

cd myproject

npm安装

因为我不想全局安装gulp并且想要运行本地gulp,所以在我的package.json文件中添加了脚本,就像这个问题中给出的一样

{
  "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?
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的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"]);
Run Code Online (Sandbox Code Playgroud)

但现在我在myproject文件夹中的命令行,当我运行gulp和gulp lint时,我收到一个错误

user1-VirtualBox:〜/ myproject $ gulp lint

/usr/local/node-v0.10.26-linux-x64/bin/gulp没有这样的文件或目录

它寻找全局节点模块中的gulp.

有没有办法让gulp在cli上运行而无需全局安装并更新PATH变量.

任何帮助将不胜感激谢谢

sno*_*uis 24

你可以找到npm安装的任何可执行文件node_modules/.bin.所以你可以使用以下方式在本地运行gulp:

./node_modules/.bin/gulp
Run Code Online (Sandbox Code Playgroud)

您可以在安装后找不到'gulp'命令找到更多信息

  • @AlexZhukovskiy它是.bin (3认同)
  • `bin`文件夹中只有一个`gulp.js`. (2认同)

Rah*_*Jha 8

使用您的代码,您应该能够运行命令npm run gulp

请试试

定义脚本的一种方法是

"scripts": {
      "gulp": "gulp"
    }
Run Code Online (Sandbox Code Playgroud)

如果您无法在项目中运行gulp命令,请运行

npm link gulp
Run Code Online (Sandbox Code Playgroud)

它会将您的全局安装gulp与您的本地项目链接起来.然后试试

 gulp -v
Run Code Online (Sandbox Code Playgroud)

如果它显示的是版本,那么就完成了.现在您可以根据需要运行任何gulp命令.

  • `npm link gulp` 正确答案 (2认同)

the*_*ndy 5

定义的脚本package.json可通过NPM访问,即npm run-script gulp.我想你想运行老式gulp,这应该因为你没有在全球范围安装失败.

脚本部分不会自动创建别名,我认为这是你的错误.您可以自己定义一个或创建一个简单的bash脚本,如果您不想每次都输入它.


小智 -5

使用此命令在 C:\\Users\\%USERNAME% 中全局安装 gulp

\n\n
npm install \xe2\x80\x93g gulp\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以安装您需要使用的任何其他 gulp 方法.. 例如:

\n\n
npm install -g gulp-concat\nnpm install -g gulp-uglify\nnpm install -g gulp-replace\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后在您想要使用 GULP 的目录中。打开命令提示符(Shift + 右键单击​​)然后在本地安装,您将能够执行 gulp。

\n\n
npm install gulp\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以安装您需要使用的任何其他 gulp 方法.. 例如:

\n\n
npm install gulp-concat\nnpm install gulp-uglify\nnpm install gulp-replace\n
Run Code Online (Sandbox Code Playgroud)\n

  • 就像我提到的,我不想全局安装 gulp (2认同)