本地安装的gulp无法在命令行中运行?

问题描述 投票:21回答:10

我是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.js command-line gulp package.json
10个回答
25
投票

您可以在node_modules/.bin中找到npm安装的任何可执行文件。因此,您可以使用:


-4
投票

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


8
投票

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


5
投票

package.json中定义的脚本可通过NPM,即npm run-script gulp访问。我想您正在尝试运行普通的旧版gulp,由于您未在全局安装它,因此应该


1
投票

就像@snorberhuis说的。我使gulp全局工作的唯一方法是手动调用gulp我正在Jenkins环境中构建


1
投票

只是另一个可以在本地使用但会给您全球性感觉的选择。将以下内容添加到您的shell配置中,即~/.bash_profile export PATH=$PATH:./node_modules/.bin 您必须source该文件,执行rehash或只是打开一个新的Shell,然后gulp(以及该文件夹中的任何其他脚本)都可以用作全局命令。


1
投票

尝试:


0
投票

检查您的项目node_modules/.bin文件夹,并确保gulp在其中。我遇到的情况是,我从来没有找到原因。如果不存在,请尝试在本地重新安装gulp,然后查看它是否显示。如果那不起作用,并且您对问题感到厌倦,可以肯定地使用gulp-cli软件包进行修复,但这不是您have


0
投票

我在可能的地方place后,这样做的方法只是转到您的应用程序并安装如下所示的npm依赖项:


0
投票

我知道的最简单的解决方案是使用npm bin

© www.soinside.com 2019 - 2024. All rights reserved.