node.js可以忽略本地node_modules目录而只使用全局模块吗?

时间:2018-04-05 13:15:07

标签: node.js

node.js是否可以配置为仅使用全局安装的模块并忽略本地node_modules目录?

对于我们的node.js app(当前为node.js 8.10.0),我们构建了一个Docker镜像,其中所需的模块全局安装在/node_modules文件夹中,环境设置为{{1 }}。这适用于生产部署。

对于本地开发,我们运行相同的Docker镜像,但将本地开发文件挂载到NODE_PATH=/node_modules。这允许图像使用任何本地更改的文件。

这一点有效,直到开发人员在其主机系统上运行/app,并创建一个npm install目录。它安装在node_modules/app/node_modules在启动时检查此文件夹,starts complaining检查有关丢失的二进制文件:

node

如果有办法告诉kumascript_1 | ## There is an issue with `node-fibers` ## kumascript_1 | `/app/node_modules/fibers/bin/linux-x64-57/fibers.node` is missing. kumascript_1 | kumascript_1 | Try running this to fix the issue: /usr/local/bin/node /app/node_modules/fibers/build kumascript_1 | /app/node_modules/fibers/fibers.js:20 kumascript_1 | throw new Error('Missing binary. See message above.'); kumascript_1 | ^ kumascript_1 | kumascript_1 | Error: Missing binary. See message above. kumascript_1 | at Object.<anonymous> (/app/node_modules/fibers/fibers.js:20:8) kumascript_1 | at Module._compile (module.js:652:30) kumascript_1 | at Object.Module._extensions..js (module.js:663:10) kumascript_1 | at Module.load (module.js:565:32) kumascript_1 | at tryModuleLoad (module.js:505:12) kumascript_1 | at Function.Module._load (module.js:497:3) kumascript_1 | at Module.require (module.js:596:17) kumascript_1 | at require (internal/module.js:11:18) kumascript_1 | at Object.<anonymous> (/app/lib/kumascript/templates.js:11:13) kumascript_1 | at Module._compile (module.js:652:30) 忽略node,那么开发人员可以在主机系统上使用/app/node_modules执行他们想要的操作,并且Docker容器将继续作为预期。

0 个答案:

没有答案