【问题标题】:Why should gulp be installed both globally and locally?为什么要在全局和本地都安装 gulp?
【发布时间】:2017-06-27 11:06:13
【问题描述】:

我是 npm 和 gulp 的新手。我正在 gulp 上阅读此 css-tricks tutorial。在安装 Gulp 部分中,他们全局安装了 gulp,以便它可以在计算机中的任何位置与命令行一起使用。在下一节创建 Gulp 项目中,他们再次在本地安装了 gulp

我不明白的是,如果 gulp 已经在全球范围内安装并且我们可以在任何地方使用它,那么为什么要安装 gulp 两次?为什么不将gulpfile.js 与其他package.json 文件放在一起?

【问题讨论】:

    标签: javascript node.js npm gulp node-modules


    【解决方案1】:

    您甚至不需要安装gulp globaly。只需将它放在本地并将 gulp 命令放入 package.json 脚本中,如下所示:

      "scripts": {
        "start": "gulp",
        "speed-test": "gulp speed-test -v",
        "build-prod": "gulp build-prod",
        "test": "NODE_ENV=test jasmine JASMINE_CONFIG_PATH=spec/support/jasmine.json"
      },
    

    比从事同一个项目的每个人都可以npm install 并开始运行命令,甚至无需全局安装 gulp。

    • npm start 将运行 gulp
    • npm run speed-test 将运行 gulp speed-test -v
    • npm run build-prod 将运行 gulp build-prod

    当然,您可以在其中添加任意数量的命令。如果团队中的某个人拥有或想要在全球范围内拥有gulp,那么他们可以直接从终端运行gulp 命令。

    【讨论】:

    • 谢谢,这似乎是一个有用的技术
    【解决方案2】:

    您在终端中使用简单的gulp 命令全局安装gulp,并在本地安装gulp(带有package.json 依赖项)以免丢失依赖项,因为您可以将项目安装到任何计算机上,致电npm i 并使用./node_modules/.bin/gulp 访问gulp,无需任何额外安装

    【讨论】:

    • @user31782 是的,npm inpm install 的短版
    • npm i 给了我以下错误:H:\C\BRQX\Transports\index1>npm i npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.0.17: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
    • 另外,如果我将我的项目安装到另一台计算机上,那么 node_modules 文件夹也将被复制。在该文件夹中 gulp 已经存在,因此其他计算机不需要全局安装 gulp。
    • @user31782 你应该在.gitignore 文件中添加node_modules 并在你的SVN 中推送这个文件夹。当有人从 SVN 克隆您的项目时,他只需运行 npm install 并从 npm 获取所有依赖项。您可以阅读这篇文章以了解为什么要这样做:quora.com/Should-I-put-node_modules-in-gitignore
    • 如果我将 node_modules 文件夹放在 gitignore 文件中,那么如果有人克隆存储库,他将不会下载 node_modules 但他仍然会下载 package.jsonfile 已经在我的项目中的许多其他依赖项中提到的 package.jsonfile .现在我假设新开发人员仍会在本地安装这些依赖项,因为他不想安装 10 - 50 个全局依赖项。现在又为什么他要在全局和本地安装 gulp?
    猜你喜欢
    • 2014-04-02
    • 1970-01-01
    • 2016-12-19
    • 2015-08-19
    • 1970-01-01
    • 2016-06-08
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多