npm在更新package.json的同时安装-g


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

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

  1. $ python -m venv <venv_name>
  2. $ <venv_name>scriptsactivate
  3. $ pip install nodeenv
  4. $ nodeenv -p

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

我遇到的问题是,每当我想通过npm安装nodejs包时,我都必须在虚拟环境中"全局"安装它,否则它就无法工作。为了说明这一点,我将向您展示当我正常使用安装软件包时会发生什么

$ npm install express

$ npm install nodmeon

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

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

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

我一直在做的是安装两次东西,一次是全局安装,另一次是正常安装,这样就可以保存在package.json.中

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

即使不是全局安装,也可以运行软件包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文件夹中或未全局安装。

最新更新