2016-12-04 287 views
0

我有一個看起來像這樣安裝NPM的依賴到文件夾中不包含的package.json

/foo 

是的它是一個空文件夾,我想運行

cd foo && npm install bar 

目錄然而NPM是抱怨foo目錄中沒有package.json文件。

如果在那裏沒有package.json文件(還有),是否有一種可靠的方法來將dependency安裝到目錄中?

事實證明,這只是一個警告,而不是一個錯誤,我誤解,它說:

NPM WARN ENOENT ENOENT:沒有這樣的文件或目錄,打開 「/home/olegzandr/.suman /package.json'

我想我的問題變成了,有沒有辦法告訴NPM忽略丟失的package.json文件?

+0

http://stackoverflow.com/a/37079775 –

+0

@ stdob--所以'NPM包foo'是要走的路? –

+0

一些像這樣的:'rm -r -f ./node_modules/PACKAGE_NAME && mkdir -p ./node_modules/ && npm pack PACKAGE_NAME | xargs tar -C/var/www/node/ork/node_modules -xzf && mv ./node_modules/package ./node_modules/PACKAGE_NAME&& rm PACKAGE_NAME * .tgz' :) –

回答

1

package.json的一個主要原因是記錄給定應用程序所具有的依賴關係。有了這個說法,您可以在您的目錄中運行npm init來創建package.json或使用npm install -g bar全局安裝該程序包。

+0

是的,我的用例是一個有點不同尋常,否則你會在 –

+1

現貨。你試圖完成什麼? – Dillon

+0

基本上,我有庫,想添加一個不在本地node_modules目錄中的無關的依賴關係到NODE_PATH。無關的依賴項將被安裝在沒有package.json文件的目錄中。我猜全球安裝的模塊安裝在他們的目錄中沒有package.json,不是嗎? –

1

你可以寫

npm install packegName --loglevel=error 

這說明僅錯誤。例如在下載或包不能找到問題。

+0

我試過--loglevel =沉默,並沒有工作,將嘗試這個,而不是.... –

+0

@AlexanderMills這適合你嗎?我嘗試了3次,沒有任何警告。 – Alon

-2

package.json文件不僅包含您的項目信息,還包含依賴關係,這使您的項目可以自行包含並輕鬆進行部署。但是,仍然可以通過運行npm install bar -g來全局安裝沒有package.json文件的包,但這不會成爲項目依賴項的一部分,它只會在本地計算機上運行。

所以,這個問題實際上取決於你的目的,但正如我所提到的,它可能在沒有package.json文件的情況下全局安裝npm包。只需要在將項目移動到另一臺PC或服務器時重新安裝,如果這是您的目的。

1

試試這個:

rm -r -f ./node_modules/PACKAGE_NAME && \ 
mkdir -p ./node_modules/ && \ 
npm pack PACKAGE_NAME | xargs tar -C ./node_modules -xzf && \ 
mv ./node_modules/package ./node_modules/PACKAGE_NAME && \ 
rm PACKAGE_NAME *.tgz 
相關問題