我有一个看起来像这样的目录
/foo
是的,它是一个空文件夹,我想运行
cd foo && npm install bar
然而,npm抱怨foo目录中没有package.json文件。
如果那里还没有package.json文件,是否有可靠的方法将依赖安装到目录中?
原来,这只是一个警告,而不是错误,我误读,它说:
npm WARN enoent ENOENT:没有这样的文件或目录,打开 '/home/olegzandr/.suman/package.json'
我想我的问题就变成了,有没有办法告诉NPM忽略丢失的package.json文件?
答案 0 :(得分:5)
删除 package-lock.json 为我解决了。
答案 1 :(得分:2)
package.json的一个主要原因是记录给定应用程序具有的依赖关系。话虽如此,您可以在目录中运行npm init
来创建package.json,也可以使用npm install -g bar
全局安装软件包。
答案 2 :(得分:1)
您可以使用以下命令行:
npm install packegName --loglevel = error
它只会显示错误。例如,下载或包中的问题无法找到。
答案 3 :(得分: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
答案 4 :(得分:-2)
package.json文件不仅包含您的项目信息,还包含依赖项,这使您的项目可以自我包含和轻松部署。但是,您仍然可以通过运行npm install bar -g
来全局安装没有package.json文件的软件包,但这不会成为您项目依赖项的一部分,它只会在您的本地计算机中。
所以,问题实际上取决于你的目的,但正如我所提到的,可以在没有package.json文件的情况下全局安装npm包。当您将项目移动到另一台PC或服务器时,只需要再次安装它即可。