簡體   English   中英

本地安裝的 gulp 不在命令行中運行?

[英]Locally installed gulp not running in command line?

我是 nodejs 和 gulp 的新手。 我在一個 nodejs 項目中工作,我必須在其中對所有文件運行 jslint。 為此,我正在使用 gulp。

我的問題是,為了在 cli 上運行 gulp,我不想全局安裝 gulp,也不想更新我的路徑變量,所以我使用 package.json 文件在我的項目中本地安裝了 gulp 和其他節點模塊

光盤我的項目

安裝

由於我不想全局安裝 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?
    }
}

添加在我的 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。

有沒有辦法讓 gulp 在 cli 上運行而無需全局安裝和更新 PATH 變量。

任何幫助將不勝感激謝謝

您可以在node_modules/.bin找到由 npm 安裝的任何可執行文件。 因此,您可以使用以下命令在本地運行 gulp:

./node_modules/.bin/gulp

您可以在沒有找到“gulp”命令的情況下找到更多信息- 安裝后

使用您的代碼,您應該能夠運行命令 npm run gulp

請嘗試

定義腳本的一種方法是

"scripts": {
      "gulp": "gulp"
    }

如果您無法在項目中運行 gulp 命令,請運行

npm link gulp

它會將您的全局安裝 gulp 與您的本地項目鏈接起來。 然后試試

 gulp -v

如果它向您顯示版本,那么您就完成了。 現在您可以根據需要運行任何 gulp 命令。

package.json中定義的腳本通過 NPM 訪問,即npm run-script gulp 我想您正在嘗試運行普通的舊gulp ,這應該會失敗,因為您沒有全局安裝它。

腳本部分不會自動創建別名,我認為這是您的錯誤。 如果您不想每次都輸入它,您可以自己定義一個或創建一個簡單的 bash 腳本。

嘗試:

path_to_node path_to_gulp_js gulp_task

例子:

node\node.exe node_modules\gulp\bin\gulp.js build

就像@snorberhuis 所說的那樣。 讓 gulp 在全球范圍內工作的唯一方法是手動調用 gulp 我正在 Jenkins 環境中構建

執行 Windows 批處理命令

cd your-app
npm install gulp

執行 Windows 批處理命令

cd your-app\node_modules\.bin 
gulp

只是另一種可以在本地工作但會給你像全球一樣的感覺的替代方案。 將以下export PATH=$PATH:./node_modules/.bin添加到您的 shell 配置,即~/.bash_profile您必須獲取該文件的source ,執行rehash或僅打開一個新的 shell,然后gulp (以及該文件夾中的任何其他腳本) ) 應作為全局命令可用。

我在每一個可能的地方抨擊我的頭之后這樣做的方式只是去你的應用程序並安裝這樣的 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

檢查您的項目node_modules/.bin文件夾並確保node_modules/.bin在那里。 我有一個案例,我從來沒有找到原因。 如果它不存在,請嘗試在本地重新安裝 gulp 並查看它是否出現。 如果這不起作用並且你厭倦了這個問題, gulp-cli包肯定會修復它,但這不應該是你必須做的事情。

我所知道的最簡單的解決方案是使用npm bin

`npm bin`/gulp ...

這使您遠離硬編碼任何路徑。

沒有什么對我有用。 我遵循了每個人的所有指示。 無論我做什么,我都無法運行 Gulp 命令。

為了解決這個問題,我打開了當你下載並運行 node.js 時自動安裝的 Node.js 命令提示符。

進入此命令提示符后,我可以運行以下命令:

npm install -g gulp
gulp -v

這可能是一個常識問題,但作為開始,沒有人建議運行 node.js 命令提示符並從那里安裝 gulp。 我讀到的所有內容都討論了具有提升權限的常規 powershell 或命令提示符。

使用此命令在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM