【问题标题】:npm install: Use global package if it exists, rather than installing twicenpm install:如果存在就使用全局包,而不是安装两次
【发布时间】:2016-05-22 04:01:31
【问题描述】:

npm installpackage.json 文件一起使用时,如何让它使用符合条件的全局安装包,而不是再次在本地下载和安装包?

我知道link,但有没有办法做到我所描述的?

【问题讨论】:

  • 只是出于好奇,这背后的动机是什么?
  • @PatrickMotard 重复数据删除
  • 动机有很多,但最重要的是节省磁盘空间。开发人员可能有 10 个相同版本的 Express、Gulp、Istanbul、NYC 或 Babel 的不同安装,这只是……浪费磁盘空间。以及开发人员时间,将文件从磁盘上的一个位置复制到另一个位置。
  • 我不确定这是否可行,但我很想知道是否可行!

标签: node.js npm npm-install


【解决方案1】:

Yarn 似乎在重复依赖时工作得更好。所以试试yarn install 而不是npm install

【讨论】:

    【解决方案2】:

    对一组特定模块执行此操作的一种方法是从 dependencies 部分中删除这些模块,并创建一个 prestart 脚本,其中包含您希望全局安装的所有模块。

    一个简单的例子可能如下所示:

      "scripts": {
        "test": "mocha",
        "prestart": "npm i -g mocha mysql bluebird"
      },
    

    您可以使用其他钩子之一来代替prestart,例如preinstallprepare。 请注意,这不适用于您要发布的软件包,并且需要更多的黑客攻击。

    关于运行脚本的帮助:https://docs.npmjs.com/misc/scripts

    【讨论】:

      猜你喜欢
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 2019-12-22
      • 1970-01-01
      • 2021-04-13
      相关资源
      最近更新 更多