-3

LEAN Stack Package的 NPM 包管理器列表中,页面右上角显示了以下安装说明:

npm 安装精益堆栈

我需要它说:

npm install -g 精简堆栈

我已经阅读了 package.json 文档,但找不到任何指定的内容。我还在package.json中将 preferGlobal 变量设置为 true ,这也没有任何区别。

4

2 回答 2

4

为什么你不能

无法像npm install packageName -g在 npmjs.com 中那样显示。您不能强制人们将您的模块用作全局模块,实际上 npm 除非必要,否则不建议使用全局模块。

就像全局变量有点粗俗,但在某些情况下也是必要的一样,全局包很重要,但如果不需要,最好避免使用。

此外,如果您要部署到其他服务器等,甚至可以在本地使用全局模块以冻结包版本。

例如,使用istanbul进行测试覆盖,您可以在全局范围内使用该包,并且键入起来更简单,istanbul test但是在本地安装istanbul将冻结package.json文件中的版本,以便无论更新如何都能保持工作。

您在本地安装并编写node node_modules/istanbul/index.js test

伊斯坦布尔只是这里的一个示例用例。

显示警告:: preferGlobal

如果您的包主要是一个应该全局安装的命令行应用程序,则将此值设置为 true 以在本地安装时提供警告。

它实际上并没有阻止用户在本地安装它,但如果它不能按预期工作,它确实有助于防止一些混乱。

然而

设置preferGlobal: true不足以在本地安装时触发警告。

为了获得消息,您必须检查以下清单:

  1. 有效的 package.json 文件。

  2. 包含文件中dependencies的对象package.json(即使它是空的)

在这些情况下,您不会看到此消息:

  1. 如果您在非 npm 项目中(没有package.json)。

  2. 如果您在一个 npm package-project 目录中,该目录恰好已经将该包安装为本地依赖项。

来源:

  1. https://stackoverflow.com/a/28206992/5384679

  2. https://github.com/npm/npm/issues/11652

  3. https://nodejs.org/en/blog/npm/npm-1-0-global-vs-local-installation/

于 2016-07-05T12:56:20.797 回答
2

无法完成,但要引起对全局安装选项的更多关注,您可以像此开发人员一样使用统计信息框:

在此处输入图像描述

于 2016-07-06T08:33:57.473 回答