npm install 不能与 --prefix 一起使用

2024-02-06

看起来npm install --prefix ./server(没有参数)不适用于--prefix旗帜。我只想安装 package.json 中的所有软件包。 该命令后我得到的只是:

npm WARN enoent ENOENT:没有这样的文件或目录,打开 '/home/.../ProjectName/server/package.json'

当我放的时候一切都很好npm install package_name -S --prefix ./server例如。然后NPM将创建node_modules in server并将添加package_name包裹。

我的文件结构是:

ProjectName
|
+-- client
|   +-- node_modules
|   +-- package.json
+-- server
|   +-- node_modules
+-- package.json

"Main" package.json包含所有脚本(对于 Heroku 和我来说)和服务器的依赖项。client是 Angular2 应用程序,这就是它拥有自己的 node_modules 和 package.json 的原因。

我使用 NPM 4.2.0。版本 5.0.3(最新?)似乎--prefix标志根本不起作用。

EDIT #1

我刚刚发现我可以解决我的问题npm install(这将安装node_modules在我的项目文件夹中)然后复制node_modules to server/node_modules。没有那个副本jasmine期间抛出错误tsc build.

现在我必须有node_modules在主目录和它们的副本server。那太奇怪了..

EDIT #2

根据@Damian Lattenero answer:

npm --prefix ./server install ./ProjectName/package.json

or

npm --prefix 项目名称/服务器安装 ./项目名称/package.json

不工作并生成:

npm 错误!代码 ENOLOCAL npm 错误!无法安装 “RecursiveNotebook3/package.json”,因为它不是一个目录,也不是 名称以 .tgz、.tar.gz 或 .tar 结尾的文件

这有效:

npm --prefix 项目名称/服务器安装 ./项目名称

但会生成:

npm WARN saveError ENOENT:没有这样的文件或目录,打开 '/home/tb/Projects/RecursiveNotebook3/server/package.json' npm 通知 创建了一个锁文件 package-lock.json。您应该提交此文件。 npm WARN enoent ENOENT:没有这样的文件或目录,打开 '/home/ tb/Projects/RecursiveNotebook3/server/package.json'

and

package-lock.json旁边node_modules

and

empty etc目录旁边node_modules

and

构建存在一些问题(tsc -p server)与 mongodb 包。


Try:

npm --prefix ./server install ./ProjectName/package.json

or

npm install --prefix ./server ./ProjectName/package.json

另外,为了更好地理解 --prefix 的作用,您可以检查这两个答案:

如何npm安装到指定目录? https://stackoverflow.com/questions/14469515/how-to-npm-install-to-a-specified-directory

npm - 在不同文件夹中安装包的依赖项? https://stackoverflow.com/questions/13498403/npm-install-dependencies-for-a-package-in-a-different-folder

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

npm install 不能与 --prefix 一起使用 的相关文章

随机推荐