已經全局安裝過gulp了,為什麼運行gulp命令提示 Local gulp not found ?

運行gulp命令提示 Local gulp not found .

可是我已經全局安裝過了:npm install gulp –g。

然後我在項目目錄局部安裝了一次npm install gulp ,就可以了。

我不明白的是:為什麼必須局部安裝一次?


看你是不是改了 global module的路徑


其實這是Gulp故意設計的,原因是為了版本和依賴的控制。意思就是當別人Fork你代碼,或者你過段時間拷貝到別的電腦上再gulp的時候,能控制gulp的版本和其他插件的版本。

參考下別人的討論吧

javascript - Why do we need to install gulp globally and locally?


這是為了方便你在不同的項目中使用不同版本的 gulp,如果僅在全局裝一個 gulp 所有項目就只能使用同一個版本的 gulp 了。

其實全局不需要安裝整個 gulp,只安裝 http://npm.im/gulp-cli 就可以在命令行執行 gulp 了。此外還可以使用 npm-script 的方式執行 gulp 腳本,因為在執行 npm-script 的時候 ./node-modules/.bin 目錄是會被自動加入 $PATH 的。具體方法就是在 package.json 裡面的 scripts 對象中加一個 "start": "gulp"(如果 start 沒被佔用的話) 或者 "build": "gulp"。需要構建時直接執行 npm start(npm run build)就可以,可以像使用 gulp 命令一樣在該命令後面接任務名和參數。


全局安裝用於在命令行中使用gulp命令執行gulp的任務,本地安裝是由於每個gulpfile.js都依賴gulp,該文件中依賴的gulp會直接從項目的node_module文件去找。本地安裝並記錄在package.json的devDependencies下,能保證所以引用你項目的人都能用同個版本的gulp。另外,使用package.json中scripts來執行gulp命令的話可以無需安裝全局包


全局安裝gulp是為了執行gulp任務,本地安裝gulp是為了調用gulp插件的功能。


我也遇到這樣的問題


請問樓主全局安裝是在哪個文件目錄下安裝的呢?項目文件夾?


其實你可以把模塊安裝在全局, 然後按需創建gulpfile.js, 再從全局link模塊到你的項目


除了gulp, 其它全局安裝的正常么?


推薦閱讀:

每個項目文件夾下都需要有node_modules嗎?
IoT開發的利器,pi-sync
Facebook 發布了新的 Node 模塊管理器 Yarn,或將取代 npm 客戶端
npx: npm 5.2.0 內置的包執行器

TAG:前端開發 | Nodejs | npm | gulp |