2016-02-25 74 views
2

從gulp的指令頁面,它被要求安裝它全球以及作爲開發依賴項目。gulp安裝全局與本地作爲開發依賴

我的問題是爲什麼我們需要安裝兩次?爲什麼項目不能使用全球項目?

我確實得到了這個錯誤提示在本地安裝它,我也跟着這個教程,但仍然卡住了。 http://blog.webbb.be/command-not-found-node-npm/

[11:47:51] Local gulp not found in ~/Documents/project 
[11:47:51] Try running: npm install gulp 

鏈接 - >https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md

回答

1

的錯誤意味着你沒有安裝gulp本地。這意味着您必須將其添加到您的依賴package.json(或只需撥打npm i gulp --save)。

它需要在本地安裝,因爲gulpfile.js通常會運行一些與gulp相關的代碼。這就是爲什麼它在您的gulpfile.js的頂部調用var gulp = require('gulp');。此呼叫從您的包裹node_modules中加載gulp。這也是功能如gulp.taskgulp.src來自。

在您要在CLI容易使用gulp相同的,這就是爲什麼它需要同時安裝全球這樣你就可以直接運行它:順便說一下

$ gulp 

,你也可以運行你的本地gulp

  1. 插入到你的package.json

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

    這告訴npm通過執行gulp命令我們要運行腳本./node_modules/.bin/gulp

  2. 運行(你必須這樣做的所有項目):

    $ npm run gulp 
    

所以它肯定更容易在全球範圍內安裝。

+0

感謝或全面的答覆,這是有道理的,只是爲了瞭解更多,當你在一個項目目錄中使用終端,然後你發出一個命令'$ gulp'它啓動本地或全球? – user2727195

+0

當你在你的項目中時,它運行全局的。嘗試運行'$ which gulp'。在我的系統上,例如安裝在'/ opt/local/bin/gulp'中。 – martin

+0

好吧,在我的例子中,'gulp'返回了'/ usr/local/bin/gulp',但是當我在非項目目錄中發出'$ gulp'命令時,全局尋找本地的一個 – user2727195