两本关于gulp的手册说我需要先全局安装 gulp(使用 -g 标志),然后再在本地安装一次。为什么我需要这个?
在全局安装工具时,用户可以在任何地方将其用作命令行实用程序,包括节点项目之外。节点项目的全局安装很 糟糕 ,因为它们使部署更加困难。
npx捆绑的实用程序npm 5.2解决了这个问题。使用它,您可以调用本地安装的实用程序,如全局安装的实用程序(但您必须以命令开头npx)。例如,如果你想调用一个本地安装的eslint,你可以这样做:
npx
npm
5.2
eslint
npx eslint .
在scriptpackage.json 的字段中使用时,npm搜索node_modules该工具以及全局安装的模块,因此本地安装就足够了。
script
node_modules
因此,如果您对(在您的 package.json 中)感到满意:
"devDependencies": { "gulp": "3.5.2" } "scripts": { "test": "gulp test" }
等等,npm run test然后运行,你根本不需要全局安装。
npm run test
这两种方法对于让人们设置您的项目很有用,因为sudo不需要。这也意味着gulp当版本在 package.json 中发生碰撞时会更新,因此每个人在使用您的项目开发时都将使用相同版本的 gulp。
sudo
gulp
似乎 gulp 在全局使用时有一些不寻常的行为。当用作全局安装时,gulp 会查找本地安装的 gulp 以传递控制权。因此,gulp 全局安装需要 gulp 本地安装才能工作。上面的答案仍然有效。本地安装总是优于全局安装。