【发布时间】:2015-12-29 17:43:56
【问题描述】:
虽然我在 docker 容器中运行此设置,但我的项目文件位于 /app 和 /app/package.json 存在
当我执行cd /app && npm install --production(作为root 用户或非root 用户)时,所有依赖项都会安装在~/.npm 文件夹中,而不是显示在/app/node_modules 中
我也尝试过 npm install --production --verbose --prefix /app,但文件夹 node_modules 仍然没有出现在 app 文件夹中的依赖项。
当我查看错误日志时,我看到几乎每个依赖项的类似消息(例如:安装反应)。
npm verb tar unpack /root/.npm/base62/0.1.1/package.tgz
npm verb tar unpacking to /app/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/base62
npm verb gentlyRm don't care about contents; nuking /app/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/base62
npm verb gentlyRm don't care about contents; nuking /app/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/esprima-fb
npm verb tar unpack /root/.npm/source-map/0.1.31/package.tgz
npm verb tar unpacking to /app/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/source-map
npm verb gentlyRm don't care about contents; nuking /app/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/source-map
npm verb tar unpack /root/.npm/esprima-fb/13001.1001.0-dev-harmony-fb/package.tgz
npm verb tar unpacking to /app/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/esprima-fb
npm verb gentlyRm don't care about contents; nuking /app/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/esprima-fb
如果我想以 root 用户身份运行,我怎样才能让 npm 始终将 package.json 中列出的所有依赖项安装在 app 目录的 node_modules 文件夹中
使用 npm@2.14.7、node@v4.2.3
【问题讨论】:
-
遗憾的是,这种方法不起作用。如果我在 docker 脚本中运行
npm install react,我会看到一个 node_modules 文件夹,但运行npm install,其中 package.json 列出了反应并不会创建 node_modules 文件夹 -
我在 Amazon Linux 上运行 Node 时遇到了同样的奇怪问题。你找到答案了吗?