npm install -g 同时更新 package.json?
npm install -g while also updating package.json?
是的,我知道,npm install -g
不应该更新 package.json
。但我需要有类似效果的东西。
我的问题如下:
我想把所有东西分开,所以我想在虚拟环境中安装节点、npm 和每个包。
我这样做 运行:
$ python -m venv <venv_name>
$ <venv_name>\scripts\activate
$ pip install nodeenv
$ nodeenv -p
这四步在虚拟环境下下载nodejs和npm
我遇到的问题是,每当我想通过 npm 安装 nodejs 包时,我都必须在虚拟环境中安装它 'globally',否则它不起作用。
为了说明这一点,我将向您展示当我通常使用 with:
安装包时会发生什么
$ npm install express
或
$ npm install nodmeon
这将在依赖项中保存 nodemon 或 express,但是它不会将它们识别为命令,例如:
$ nodemon run start
将 return 'nodemon' is not recognized as an internal or external command
但是当我使用 npm install -g
安装软件包时,不会发生这种情况。当我这样做时它们工作得很好,但问题是它们不会保存在 package.json
.
我一直在做的是安装 2 次,一次全局安装,一次正常安装,这样它就可以保存在 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 is a tool for running npm packages that: live inside of a local node_modules folder or are not installed globally.
是的,我知道,npm install -g
不应该更新 package.json
。但我需要有类似效果的东西。
我的问题如下: 我想把所有东西分开,所以我想在虚拟环境中安装节点、npm 和每个包。 我这样做 运行:
$ python -m venv <venv_name>
$ <venv_name>\scripts\activate
$ pip install nodeenv
$ nodeenv -p
这四步在虚拟环境下下载nodejs和npm
我遇到的问题是,每当我想通过 npm 安装 nodejs 包时,我都必须在虚拟环境中安装它 'globally',否则它不起作用。 为了说明这一点,我将向您展示当我通常使用 with:
安装包时会发生什么$ npm install express
或
$ npm install nodmeon
这将在依赖项中保存 nodemon 或 express,但是它不会将它们识别为命令,例如:
$ nodemon run start
将 return 'nodemon' is not recognized as an internal or external command
但是当我使用 npm install -g
安装软件包时,不会发生这种情况。当我这样做时它们工作得很好,但问题是它们不会保存在 package.json
.
我一直在做的是安装 2 次,一次全局安装,一次正常安装,这样它就可以保存在 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 is a tool for running npm packages that: live inside of a local node_modules folder or are not installed globally.