首頁  >  文章  >  web前端  >  詳解多個node版本下如何指定版本運行專案?

詳解多個node版本下如何指定版本運行專案?

青灯夜游
青灯夜游轉載
2021-04-06 10:59:083045瀏覽

這篇文章要為大家介紹多個nodejs下指定nodejs版本運行專案的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

詳解多個node版本下如何指定版本運行專案?

就像標題說的,我們服務上面有多個nodejs項目,並且需要部署,每個nodejs所需的版本都不一樣(一個12.8.0,一個6.3.0,一個8.11.1)

如果從傳統做法來看有nvs,nvm,pm2等,工具雖好,但是我總覺得麻煩。學習工具又累,而且需要時間。

還有就是我目前選擇的框架是eggjs,egg官方已經幫你把關於多進程,等效能優化做的很好了(阿里雙十一就是採用的這種方案),我不需要再用別的工具幫我去優化效能,我這麼小一個站點也不需要。

相關推薦:《nodejs 教程

解決的過程

我不斷的百度,然而百度我只能看到阿里的解決方案。沒有更多了(沮喪)

然後我就想,首先nodejs運行js檔案必須是在node環境下面,需要執行node指令的,如果電腦已經裝過nodejs那麼其實你直接用npm指令就在安裝的這個nodejs的大環境下(假設為6.0.0),但是你的專案要10.0.0以上才可以運作。

那麼第一,我知道一個nodejs官網的包,並且同步更新官網版本,應該也是官網維護吧

包名稱:node https://www.npmjs.com/package /node

安裝之後可以透過npx node@4 你的js檔案 來運行js

##但是我試了很久無法通過這個指令來執行node_modules下面的套件檔案(指令的原理其實就是node指令,差別在於一個是你安裝當下運作環境了的,不會因為外層變更而改變)

後來又是不斷的百度和嘗試。始終找不到解決方式。

但是我想到一件事情,webstrom是可以幫你啟動專案的。

看到沒有,webstrom的啟動nodejs本身就是指定nodejs版本的。是說webstrom的啟動方式就是我們所需要的啟動方式。

然後就想,webstrom啟動的指令是什麼。 (腦子笨了半天)其實啟動一下就看到了

截圖:

看截圖,上面這部分就是webstrom的啟動方式。

但你直接拿這個指令去cmd下面啟動是沒用的,切換盤符也沒用。

最終解決方案

 第一:需要在cmd下面切換到專案的目錄下面

如圖(和package.json同一個目錄下面):

第二:找到你安裝的node套件

第三:分析剛才的執行指令

F:\ItemSet\egg-project\dream-backend\node_modules\node\bin\node.exe F:\nodejs\node_modules\npm\bin\npm-cli.js run start --scripts- prepend-node-path=auto

透過分析得到

第一部分是你的套件名稱路徑一直到node.exe

第二部分是你的npm安裝的npm-cli.js檔案位置

第三部分是run,執行指令

第四部分:start 在package.json上面定義的啟動腳本指令

#如圖:

第五部分:--scripts-prepend-node-path=auto(我也不知道幹啥的。大神請指教)

#然後直接拷貝一下

運行:

看截圖(已經成功運行了)

 所以這就是最終解決方式了。

用最原始的node運作方式得到一個專案指定nodejs運作的環境。這樣,你的電腦上面只要有任一nodejs環境都可以運作了。

注意npm必須安裝nodejs才有,所以是任意版本的nodejs

這裡有個問題,因為套件安裝的node檔案是node.exe,說實在我不知道linux下行不行,但是node這個套件應該是官方的套件。希望也能相容linux。那麼就是跨平台的了。不行大家可以用阿里的nodeinstall模組,也能達到效果

更多程式相關知識,請造訪:程式設計影片! !

以上是詳解多個node版本下如何指定版本運行專案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除