小编典典

为什么我们需要在全局和本地安装 gulp?

all

两本关于gulp的手册说我需要先全局安装 gulp(使用 -g
标志),然后再在本地安装一次。为什么我需要这个?


阅读 102

收藏
2022-04-20

共1个答案

小编典典

在全局安装工具时,用户可以在任何地方将其用作命令行实用程序,包括节点项目之外。节点项目的全局安装很 糟糕 ,因为它们使部署更加困难。

npm 5.2+

npx捆绑的实用程序npm
5.2解决了这个问题。使用它,您可以调用本地安装的实用程序,如全局安装的实用程序(但您必须以命令开头npx)。例如,如果你想调用一个本地安装的eslint,你可以这样做:

npx eslint .

npm < 5.2

scriptpackage.json 的字段中使用时,npm搜索node_modules该工具以及全局安装的模块,因此本地安装就足够了。

因此,如果您对(在您的 package.json 中)感到满意:

"devDependencies": {
    "gulp": "3.5.2"
}
"scripts": {
    "test": "gulp test"
}

等等,npm run test然后运行,你根本不需要全局安装。

这两种方法对于让人们设置您的项目很有用,因为sudo不需要。这也意味着gulp当版本在 package.json
中发生碰撞时会更新,因此每个人在使用您的项目开发时都将使用相同版本的 gulp。

附录:

似乎 gulp 在全局使用时有一些不寻常的行为。当用作全局安装时,gulp 会查找本地安装的 gulp 以传递控制权。因此,gulp 全局安装需要 gulp
本地安装才能工作。上面的答案仍然有效。本地安装总是优于全局安装。

2022-04-20