看來npm install --prefix ./server
(沒有參數)不能用--prefix
標誌。我只想從package.json安裝所有的軟件包。 所有這一切命令後,我得到的是:npm install不能用--prefix
NPM WARN ENOENT ENOENT:沒有這樣的文件或目錄,打開 '/home/.../ProjectName/server/package.json'
例如,我把npm install package_name -S --prefix ./server
作爲例子,一切正常。然後NPM將在server
中創建node_modules
並添加package_name
包。
我的文件結構是:
ProjectName
|
+-- client
| +-- node_modules
| +-- package.json
+-- server
| +-- node_modules
+-- package.json
「主」 package.json
包含了所有的腳本(Heroku的和我)和服務器dependiencies。 client
是Angular2應用程序,這就是它擁有自己的node_modules和package.json的原因。
我使用NPM 4.2.0。 5.0.3版本(最新版本?)似乎--prefix
標誌根本不起作用。
編輯#1
我剛剛發現我可以解決我的問題與npm install
(這將在我的項目文件夾中安裝node_modules
),然後node_modules
複製到server/node_modules
。沒有該副本jasmine
在tsc
構建期間拋出錯誤。
現在我必須node_modules
在主目錄和他們的副本server
。這是如此奇怪..
編輯#2
根據@Damian Lattenero
答案:
NPM --prefix ./server安裝./ProjectName/package.json
或
npm --prefix ProjectName/server install ./ProjectName/package.json
不能正常工作,併產生:
NPM ERR!代碼ENOLOCAL npm ERR!無法安裝 「RecursiveNotebook3 /的package.json」,因爲它不是一個目錄,而不是 用名.tgz的,名爲.tar.gz結尾或.TAR
這個工程文件:
npm --prefix ProjectName/server install。/項目名
但生成:
NPM WARN saveError ENOENT:沒有這樣的文件或目錄中,打開 '/home/tb/Projects/RecursiveNotebook3/server/package.json' NPM通知 創建一個lockfile作爲package-lock.json。你應該提交這個文件。 NPM WARN ENOENT ENOENT:沒有這樣的文件或目錄,打開一個 '/ home/ TB /項目/ RecursiveNotebook3 /服務器/的package.json'
和
package-lock.json
旁邊node_modules
和
空etc
目錄旁邊node_modules
和
使用mongodb包構建(tsc -p server
)時存在一些問題。
tBlabs和第二個也沒有工作?這很奇怪,因爲它正在尋找服務器文件夾中的包json?我做了第一個和第二個的編輯 –
嘿tBlas!把你的解決方案作爲答案,在這個網站是一個很好的做法;) –