【发布时间】:2020-08-25 08:16:29
【问题描述】:
我有以下目录结构
./app1/app1.js
./app1/package.json
./app1/node_modules
./app2/app2.js
./app2/package.json
./app2/node_modules
./shared/share.js
app1 和 app2 都拉入 share.js
// app1.js
const share = require('../shared/share.js')
share.js 使用 app1 和 app2 的 package.json 中定义的模块
// share.js
const toml = require('toml')
运行时node app1.js
Error: Cannot find module 'toml'
如何在这些应用之间共享 share.js 文件?如果可能,我宁愿不使用符号链接。
【问题讨论】:
-
你试过这个 const share = require('./../shared/share.js') 吗?,一旦我遇到相同类型的问题。添加 ./
-
实际上我做了一个例子,它适用于这种结构。你在 app1 和 app2 中做了
npm i吗? -
如果 share.js 不依赖于安装在
app1和app2中的模块会更好。如果它能够独立站立就更好了。如果它有依赖项,则将它们安装在shared目录中,然后shared.js 可以从自己的目录中加载自己的依赖项。这就是你如何制作一个独立且可重用的模块。 -
我在这种场景下使用 git 子项目。
标签: javascript node.js