首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们共享一个纱线JS文件夹w/ client & server,

我们共享一个纱线JS文件夹w/ client & server,
EN

Stack Overflow用户
提问于 2020-08-31 22:34:40
回答 1查看 161关注 0票数 0

情况:

  • 客户机和服务器都共享一个文件夹shared
  • 当我们在开发流程中更改共享时,我们希望相应的引用在客户和服务器中进行更改。
  • 服务器工作是因为在某种程度上使用npm,它似乎工作,共享和服务器使用npm
  • 客户不工作,使用纱线
  • 混合类型记录和js项目

代码结构:

代码语言:javascript
复制
root/
|- client/
   |- package.json
   |- src/
      |- ...
|- server/
   |- package.json
   |- src/
      |- ...
|- shared/
   |- package.json // we don't want to change version every change
   |- src/
      |- ...

曾经尝试过的

  • 3种提出的这里解决方案
代码语言:javascript
复制
-   create a folder common under root and just require the files you need from your files. But you could end up with "long" require such as require("../../../../../common/file")
代码语言:javascript
复制
- long require doesn't work with resolution with webpack - and isn't a nice solution
代码语言:javascript
复制
-   use module-alias to avoid that problem: [https://github.com/ilearnio/module-alias](https://github.com/ilearnio/module-alias)
代码语言:javascript
复制
- module-alias _seems_ to be the same solution as the next one, in how it behaves.
代码语言:javascript
复制
-   you could make common a local module (using file:) and install it in package.json [https://docs.npmjs.com/files/package.json#local-paths](https://docs.npmjs.com/files/package.json#local-paths)
代码语言:javascript
复制
- we currently do this, but we still have to reinstall the `shared` folder on a change, we currently use `yarn upgrade shared` which takes a long time and still requires us to know when we need to run it.
  • 此外,我们试图使yarn link工作,但似乎没有正确地链接
  • 我们尝试使用post-pull钩子与husky一起运行yarn upgrade shared,但是运行每一个拉杆都太慢了,特别是因为不经常需要它
  • 我们已经考虑过一个真正的单回购包,比如Lerna,但是仍然不认为迁移的成本是必要的。
  • 安装后脚本上的链接模块别名到sym链接文件夹,但带有类型记录文件失败

目标

  • 要么是
    • 找到一种在dev环境中自动同步它们的方法
    • 找到一个手动安装/更新的解决方案--但是速度很快,并且可以在每次拉动时运行。
    • 找到一种自动运行yarn upgrade shared的方法,该方法只在需要时才运行(粗略地),而不是一直运行
    • 我想我们可以找到一种方法来自动化sharedversion键的任何更改的版本增量,然后跟踪它,我们可以运行yarn install并完成这项工作。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-21 16:52:58

查找解决方案是,我们使用的是React本机,因此,正常的同步步骤将适用于IDE,而不是Reacti-原住民应用程序。

这里是一篇很棒的文章,描述了如何使用它--但是对于类型记录,我们将它添加到TSConfig中,而对于IDE,我们仍然需要使用file:../shared指令将它添加到包中。

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

https://stackoverflow.com/questions/63679026

复制
相关文章

相似问题

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