npm install -g
在全局安裝軟件包。當你與
var ejs = require('ejs')
您需要npm install --save ejs
安裝引用它們
節點無法找到全球已安裝的軟件包。這將包安裝到本地node_modules
目錄,並將其保存到您的package.json
This is because when node looks for a package所在的路徑不與.
或/
它看起來在當前目錄中的node_modules
目錄一後指定的目錄開始包。然後它上升到一個目錄並執行相同的操作,保持循環直到到達文件系統的根目錄。
例如如果您在/users/thomas/src/myproject
是它會尋找:
/users/thomas/src/myproject/node_modules/ejs
/users/thomas/src/node_modules/ejs
/users/thomas/node_modules/ejs
/users/node_modules/ejs
/node_modules/ejs
如果它不能在那些地方的一個存在,它會不會被發現。
(There are some deprecated ways,你可以把它看在其他地方爲好,但這些不推薦,因爲它涉及到使用它是很困難的環境變量要記得上部署的機器設置)
此外,如果你」重新使用heroku,您需要將包列出在您的package.json文件的dependencies
中,以便讓heroku知道如何安裝它。 npm install -g
不添加條目到您的package.json
然而,一些建議。
- 請勿使用EJS。那裏有更好的(現在維護的)模板包。我們在一箇舊的遺留系統中使用EJS,比任何事情都更令人沮喪。
- 永遠不要用-g安裝軟件包,除非你真的希望該工具是全球性的。大多數情況下,你希望它在你的項目中是本地的。
您是否試過現在只是刪除'ejs'作爲依賴,以查看它是否在沒有它的情況下正常啓動(修改package.json) – adeneo
@adeneo是的。該頁面正常加載。我覺得我最終需要'ejs'模塊,儘管如果它被包含在本教程的dep中。你有什麼想法可以解決這個問題嗎? EJS看起來就像下劃線/ lodash模板(如果我沒有弄錯)。是否值得花時間試着讓它工作,或者我只是把它取代。 – 1252748
我真的很喜歡EJS,一直都在用它,我討厭Jade,但那只是我。下面的答案可能會涉及到某些內容,但是由於EJS是您的依賴項的一部分,所以您只需在所使用的目錄中調用'npm install',並且所有依賴項都應該以自動方式安裝。 – adeneo