2016-06-29 92 views
2

考慮的Python現在:在nodejs中是否有與Python的virtualenv等價的東西?

  • 你可以有解釋,比如說,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,反之亦然,因爲很多包都是怪異的。
  • 而不是Django我想創建一個Cordova/Ionic應用程序與一個特定的科爾多瓦版本,所以我npm install -g ionic在一個特定的nvm選擇版本。
  • 相當於Pundle,npm對我的應用程序有內在的支持。
  • 如果我想爲我的項目提供我的科爾多瓦版本的特定命令,我可以運行一個像npm run cordova -- build android而不是cordova build android

但是,這給我帶來了一個問題:對於在同一節點解釋的版本,我可以有只有一個全局科爾多瓦或離子或任何我想要的。這意味着:如果我想使用特定版本的nodejs,並且有兩個項目需要不同版本的必需命令行,那麼我無法運行全局命令來創建此類項目。例如:

$ NVM使用mynodeversion $離子開始對myApp

我將在命令中使用的離子的特定版本,這將產生對我的項目是版本特有的樣板。假設離子版本是x1.y1.z1。

現在我想創建一個離子版本爲x2.y2.z2的項目。但是,如果我嘗試這樣做:

$ NVM使用mynodeversion $離子開始對myApp

我會生成它的版本x1.y1.z1爲同一解釋,無論是哪個版本的離子是在我的package.json中引用。

在使用virtualenvs自動解決的Python中:您可以擁有特定的Python解釋器,可以創建許多不同的環境,安裝不同版本的框架,在每個virtualenv上安裝不同的版本,併爲您的項目生成不同版本的樣板,將與相應的版本兼容。

我的問題是:我怎樣才能做到與nodejs相同?提供但不限於給出的示例(另一個示例可能會出現在sails或react-native中)。

回答

4

很簡單:從不使用npm install -g,使用npm install --save-dev。 CLI實用程序將安裝在node_modules/.bin文件夾中。爲了方便起見,它還添加到PATH中用於npm腳本,所以你可以不加前綴地調用它們。

+0

通過這樣做,我必須像'node_modules/.bin/ionic'一樣調用它,但是我的npm腳本只能使用'ionic'。我是對的? –

+0

是的,這是正確的 – vkurchatkin

+0

我還注意到'npm install'沒有--save-dev也在node_modules/.bin下安裝庫二進制文件。我的問題是:使用--save-dev和通過'npm install ionic'安裝時沒有使用任何標誌(僅用於保存樣本)用於我的目的有什麼區別?你也可以通過這些指導方針的答案(因爲它是我的疑惑的一部分,我是nodejs中的n00b)。 –

相關問題