似乎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
在server
并会增加package_name
包。
我的文件结构是:
ProjectName
|
+-- client
| +-- node_modules
| +-- package.json
+-- server
| +-- node_modules
+-- package.json
Run Code Online (Sandbox Code Playgroud)
“Main”package.json
包含所有脚本(适用于 Heroku 和适用于我)和服务器的依赖项。
client
是 Angular2 应用程序,这就是为什么它有自己的 node_modules 和 package.json。
我使用 NPM 4.2.0。对于 5.0.3 版(最新的?),似乎--prefix
flag 根本不起作用。
编辑#1
我刚刚发现我可以用npm install
(将安装node_modules
在我的项目文件夹中)解决我的问题,然后复制node_modules
到server/node_modules
. 如果没有该副本,jasmine
则会在tsc
构建期间引发错误。
现在我必须node_modules
在主目录中将它们复制到server
. 这太奇怪了。。
编辑#2
根据@Damian Lattenero
回答:
npm --prefix ./server install ./ProjectName/package.json
或者
npm --prefix ProjectName/server install ./ProjectName/package.json
不工作并产生:
npm 错误!代码 ENOLOCAL npm ERR!无法安装“RecursiveNotebook3/package.json”,因为它不是目录,也不是名称以 .tgz、.tar.gz 或 .tar 结尾的文件
这有效:
npm --prefix ProjectName/server install ./ProjectName
但会产生:
npm WARN saveError ENOENT: no such file or directory, open '/home/tb/Projects/RecursiveNotebook3/server/package.json' npm notice 创建了一个 lockfile 作为 package-lock.json。你应该提交这个文件。npm WARN enoent ENOENT: 没有那个文件或目录,打开'/home/tb/Projects/RecursiveNotebook3/server/package.json'
和
package-lock.json
旁边 node_modules
和
etc
旁边的空目录node_modules
和
tsc -p server
使用 mongodb 包构建 ( )存在一些问题。
尝试:
npm --prefix ./server install ./ProjectName/package.json
Run Code Online (Sandbox Code Playgroud)
或者
npm install --prefix ./server ./ProjectName/package.json
Run Code Online (Sandbox Code Playgroud)
此外,为了更好地了解 --prefix 的作用,您可以查看以下两个答案:
归档时间: |
|
查看次数: |
16811 次 |
最近记录: |