首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个本地节点项目之间共享代码

在两个本地节点项目之间共享代码
EN

Stack Overflow用户
提问于 2020-05-10 02:29:30
回答 1查看 319关注 0票数 0

我有以下目录结构

代码语言:javascript
复制
./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

代码语言:javascript
复制
// app1.js
const share = require('../shared/share.js')

share.js使用在app1和App2的package.json中定义的模块

代码语言:javascript
复制
// share.js
const toml = require('toml')

运行node app1.js

Error: Cannot find module 'toml'

如何在这些应用程序之间共享share.js文件?如果可能的话,我不喜欢使用符号链接。

EN

回答 1

Stack Overflow用户

发布于 2020-05-10 02:43:04

您可以在这里使用的解决方案之一是使用yarn workspaces

这将允许你在应用程序之间共享你的包,这样你就可以拥有如下结构:

代码语言:javascript
复制
- 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

代码语言:javascript
复制
"dependencies": {
  "sharedPackage": "1.0.0"
}

并在项目project1/index.js中使用它。

代码语言:javascript
复制
const shared = require('sharedPackage');
shared.doSomething();

Yarn会知道你在工作空间中的依赖关系,所以它会让你轻松地将它们包含进来,并进行所有的链接。更重要的是,您甚至可以将您的共享包发布到某个包注册表(NPM/Github/随便什么),并使其只是一个包。

这将完成工作,但如果您正在寻找一些更具可扩展性的解决方案来管理依赖项,我强烈建议您尝试lernarush

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61701761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档