【问题标题】:gulp installation global vs. local as dev dependencygulp 安装全局与本地作为开发依赖项
【发布时间】:2016-06-08 14:10:59
【问题描述】:

从 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

【问题讨论】:

    标签: npm gulp npm-install


    【解决方案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
      

    所以全局安装肯定更容易。

    【讨论】:

    • 感谢或综合回复,这是有道理的,只是为了了解更多,当您使用终端在项目目录中然后发出命令$ gulp 它会启动本地或全局一个?
    • 当你在你的项目中时,它会运行全局的。尝试运行$ which gulp。例如,在我的系统上,它安装在/opt/local/bin/gulp
    • 好的,which gulp 在我的情况下返回了/usr/local/bin/gulp,但是当我在非项目目录中发出命令$ gulp 时,全局的会寻找本地的
    • 发现这两个命令混淆了npm install gulp-cli -gnpm install gulp -g,这两个程序有什么区别?
    • gulp-cli 是您全局安装的,只需调用$ gulp 即可。你可能不想安装npm install gulp -g。您项目的所有包依赖项都应安装在本地。
    猜你喜欢
    • 2013-12-30
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2017-06-27
    • 2019-04-29
    相关资源
    最近更新 更多