我搜索了 wiki 模块页面,但找不到任何类似于 virtualenv (python) 或 rvm 的内容。
这里有人在自己的环境中分离node.js吗?我真的不喜欢在系统范围内安装 npm。
nodeenv - Node.js 的虚拟环境(模拟 virtualenv )
如果系统范围内的 npm 软件包是您的主要问题,那么也许可以考虑在 npm 中使用非常酷的“bundle”命令。这更接近于冻结 gem 或在 Rails 中使用捆绑器,而不是 RVM。
这非常简单。只需创建一个 package.json 文件即可:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
然后运行:
npm bundle vendor
或者如果你的 npm 版本 >= 1.0 运行:
npm install
冻结到供应商目录中。然后使用:
require.paths.unshift('./vendor');
还有一些 Node 版本管理系统可以提供帮助。
查看 Nave https://github.com/isaacs/nave
也可以使用NVM https://github.com/creationix/nvm
您并不总是需要全局安装依赖项。通常推荐这样做,因为这样您就可以使用 npm 包提供的命令。但是如果你在本地安装它(在
node_modules
)目录中,你也可以使用这些命令,它们只会出现在 node_modules/.bin/
目录中,所以你必须输入 node_modules/.bin/<command>
,这很烦人,但是你当然可以将此路径添加到您的 PATH
环境变量中:
export PATH=node_modules/.bin:$PATH
然后你只需输入
<command>
就可以了!
实际上有一个 npm 命令返回
.bin
目录的绝对路径:
$ npm bin
/path/to/node_modules/.bin
当您位于项目的子目录中时,此命令也适用,它将返回在其父目录中找到的第一个
node_modules/.bin
目录。
您可以在您的
.bashrc
中添加此别名,以自动将 .bin/
目录添加到您的 PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
因此,当您所在的项目的根目录中有
node_modules/
目录时,您可以键入 nodebin
,然后就可以使用 .bin/
目录中的所有命令!
更新:
现在,您有一个包可以为您处理所有这些事情:npx。然后,您只需在命令前面加上
npx
,例如:npx <command>
。检查一下:
bxjx 的答案在概念上是准确的。但是,请注意,bundle 命令不再需要目录。它always将包放入
node_modules
文件夹中,以便npm知道以后在哪里找到它们(并且可以避免重复安装依赖项)。
任何解决方案都可能涉及在“系统范围内”安装 npm 和 nave(即在您的
PATH
中,可能位于 ~
某处),但随后仅在虚拟环境中安装您的 特定依赖项。
我在 github 问题上回答得更彻底。
tl;dr:该用例是有效且有帮助的,虽然它大部分都存在,但它并没有得到应有的服务。我们应该确保考虑清楚并正确执行。
conda create --name my_env python=3.9 nodejs
conda activate my_env
# optionally, also install yarn
conda install -c conda-forge yarn
##############################################
# check it works
# python related
pip --version
python --version
# nodejs related
yarn --version
npm --version
node --version
##############################################
# verify they're inside the conda environment
# python related
which pip
which python
# nodejs related
which yarn
which npm
which node
https://www.npmjs.com/package/node-venv。
Node-Venv 提供了两个主要命令来帮助您管理 Node.js 环境:set 和 activate。
将
节点 venv 激活