2016-12-04 251 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 
相关问题