npm install -g 同时更新 package.json?

Posted

技术标签:

【中文标题】npm install -g 同时更新 package.json?【英文标题】:npm install -g while also updating package.json? 【发布时间】:2021-08-04 00:52:54 【问题描述】:

是的,我知道,npm install -g 不应该更新 package.json。但我需要一些能产生类似效果的东西。

我的问题如下: 我想把所有东西分开,所以我想在虚拟环境中安装 node、npm 和每个包。 我通过运行来做到这一点:

    $ python -m venv <venv_name> $ <venv_name>\scripts\activate $ pip install nodeenv $ nodeenv -p

这四步在虚拟环境中下载nodejs和npm。

我遇到的问题是,每当我想通过 npm 安装 nodejs 包时,我必须在虚拟环境中“全局”安装它,否则它不起作用。 为了说明这一点,我将向您展示当我正常使用以下安装包时会发生什么:

$ npm install express

$ npm install nodmeon

这将保存 nodemon 或 express 在依赖项中,但是它不会将它们识别为命令,例如:

$ nodemon run start 将返回 'nodemon' is not recognized as an internal or external command

但是当我使用npm install -g 安装软件包时不会发生这种情况。当我这样做时,它们工作得很好,但问题是它们不会保存在 package.json 中。

我一直在做的是安装 2 次,一次全局安装,一次正常安装,以便可以将其保存在 package.json 中。

我的问题是:我的全局安装是否可以在 package.json 中输出?或者你有什么方法可以推荐我来解决这个问题?

【问题讨论】:

将 nodemon 放在 package.json 中的 script 中,然后它就可以工作了。除非它们是全局的,否则它不起作用是正常的 你可以使用npx 谢谢,不知道不跑也正常。 【参考方案1】:

即使没有全局安装,您也可以运行软件包 cli。比如nodemon、knex等。

如果你使用npm,你可以使用npx

npx nodemon

如果你使用yarn,你可以使用yarn

yarn nodemon

https://blog.scottlogic.com/2018/04/05/npx-the-npm-package-runner.html

npx 是一个用于运行 npm 包的工具:位于本地 node_modules 文件夹中或未全局安装。

【讨论】:

以上是关于npm install -g 同时更新 package.json?的主要内容,如果未能解决你的问题,请参考以下文章

“npm install [package]”不更新 package.json

npm install 更新依赖报E404错误

vue的请求数据方式

npm install 未将软件包更新到最新的 dist-tag

npm install packagename --save-dev 不更新 package.json

vue框架中webpack更新了,怎么获取本地数据,安装了npm install axios --save也不想,一直报错