我有以下目录结构
./app1/app1.js
./app1/package.json
./app1/node_modules
./app2/app2.js
./app2/package.json
./app2/node_modules
./shared/share.jsapp1和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文件?如果可能的话,我不喜欢使用符号链接。
发布于 2020-05-10 02:43:04
您可以在这里使用的解决方案之一是使用yarn workspaces。
这将允许你在应用程序之间共享你的包,这样你就可以拥有如下结构:
- project1
-- package.json (deps for project1)
- project2
-- package.json (deps for project2)
- sharedPackage
-- package.json (deps for shared)
- package.json (your root of project deps where you define workspaces)现在你可以使用你的共享包作为常规依赖了!
在你内心的某处project1/package.json
"dependencies": {
"sharedPackage": "1.0.0"
}并在项目project1/index.js中使用它。
const shared = require('sharedPackage');
shared.doSomething();Yarn会知道你在工作空间中的依赖关系,所以它会让你轻松地将它们包含进来,并进行所有的链接。更重要的是,您甚至可以将您的共享包发布到某个包注册表(NPM/Github/随便什么),并使其只是一个包。
https://stackoverflow.com/questions/61701761
复制相似问题