【问题标题】:Is there an equivalent to Python's virtualenv in nodejs?nodejs中是否有与Python的virtualenv等效的东西?
【发布时间】:2016-11-01 12:21:21
【问题描述】:

立即考虑 Python:

  • 您可以拥有一个解释器实例,例如 2.7。
  • 您可以全局安装 virtualenv 及其包装器(只要您有权限)。
  • 您可以创建多个 Python 环境并安装所需的全局包,例如 Django。
  • 激活解释器后,您可以运行 django-admin.py(环境中可用的全局命令)并创建 django 项目。
  • 拥有 Django 项目后,您可以运行 python manage.py 在项目中运行命令。
  • 也许您可以在项目中使用 pundle 来安装特定于项目而不是环境范围的软件包。

有了这个,你可以在一个环境中拥有一个带有包的项目,其中包含某些范围广泛的包,提供它们自己的命令行来执行。您在此处安装了一个单个解释器,并且*对于同一个解释器,您可以安装几个不同的 Django 版本(每个版本都需要不同的环境,但在每个版本中,python 解释器都有别名) .

现在我想考虑 nodejs 和诸如 react、cordova、sails、meteor 之类的东西......你有很多选择可以选择,只要它们提供命令行。

  • 我第一次安装nodejs,也安装了npm和nvm。
  • 我使用 nvm 安装特定版本的节点。也许我必须手动将节点别名为 nodejs,反之亦然,因为许多包表现得很奇怪。
  • 我想创建一个具有特定 Cordova 版本的 Cordova/Ionic 应用程序,而不是 Django,所以我在特定的 nvm 选择版本中npm install -g ionic
  • 相当于 Pundle,npm 对我的应用程序具有内在支持。
  • 如果我想为我的项目使用我的 cordova 版本的特定命令,我可以运行类似 npm run cordova -- build android 而不是 cordova build android 的命令。

但这给我带来了一个问题:对于同一个节点解释器版本,我可以只有一个全局 cordova 或 ionic 或任何我想要的。这意味着:如果我想使用特定版本的 nodejs,并且有两个项目需要不同版本的所需命令行,我无法运行全局命令来创建此类项目。示例:

$ nvm 使用 mynodeversion $ ionic start myApp

我将在该命令中使用特定版本的 ionic,这将为我的项目生成特定于该版本的样板。假设离子版本是 x1.y1.z1。

现在我想创建一个离子版本 x2.y2.z2 的项目。但如果我尝试这样做:

$ nvm 使用 mynodeversion $ ionic start myApp

我将为同一个解释器的 x1.y1.z1 版本生成它,无论我的 package.json 中引用了哪个 ionic 版本。

在使用 virtualenvs 自动解决的 Python 中:您可以拥有一个特定的 Python 解释器,用它创建许多不同的环境,安装不同版本的框架,每个 virtualenv 上一个,并为您的项目生成不同版本的样板,这将兼容相应版本。

我的问题是:如何使用 nodejs 做同样的事情?提供但不限于给定的示例(另一个示例可能与sails 或react-native 一起出现)。

【问题讨论】:

    标签: node.js dependencies packages development-environment


    【解决方案1】:

    这很简单:永远不要使用npm install -g,使用npm install --save-dev。 CLI 实用程序将安装在node_modules/.bin 文件夹中。为方便起见,它还为您的 npm 脚本添加到 PATH 中,因此您可以不带前缀调用它们。

    【讨论】:

    • 这样做我必须像node_modules/.bin/ionic 一样调用它,但我的npm 脚本只能使用ionic。我是对的?
    • 我还注意到,npm install 没有 --save-dev 也会在 node_modules/.bin 下安装库二进制文件。我的问题是:出于我的目的,通过npm install ionic(只是为了保留示例)安装时使用 --save-dev 和不使用任何标志有什么区别?您也可以将这些准则传递给答案(因为这是我的疑问的一部分,而且我是 nodejs 中的 n00b)。
    • --save-dev 只是自动在 package.json 文件中添加一个条目,这样就可以检查存储库 npm install 并获取所有工具
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 2011-11-16
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 2010-09-09
    • 2022-01-10
    相关资源
    最近更新 更多