似乎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 版(最新的?),似乎--prefixflag 根本不起作用。
编辑#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 次 |
| 最近记录: |