[英]Share code between two local node projects
我有以下目录结构
./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 文件? 如果可能的话,我宁愿不使用符号链接。
您可以在此处使用的解决方案之一是使用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)
现在您可以使用共享的 package 作为常规依赖项!
在你的某个地方project1/package.json
"dependencies": {
"sharedPackage": "1.0.0"
}
并在项目project1/index.js
中使用
const shared = require('sharedPackage');
shared.doSomething();
Yarn 将了解您在工作空间内的依赖关系,因此它会让您包含它们并轻松完成所有链接。 更重要的是,您甚至可以将您的共享 package 发布到一些 package 注册表(NPM/Github/whatever)并使其成为 ZEFE90A8E604A7C840E88D03A67F6B7D8。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.