使用纱线工作区导出枚举时出现意外令牌错误

Unexpected token error exporting enums using yarn workspaces

我有一个打字稿项目,结构如下:

root/
  packges/
    client/ <-- Built with CRA
    server/
    domain/
      src/models
      package.json
      tsconfig.json
      webpack.config.js

在客户端项目中导入 @project/domain/src/models/some-model.ts 之类的模型似乎工作正常(或者至少 linter 不会抱怨)。但是,当我 运行 应用程序时,出现此错误:

../domain/src/models/some-model.ts 12:7
[1] Module parse failed: Unexpected token (12:7)
[1] File was processed with these loaders:
[1]  * ../../node_modules/@pmmmwh/react-refresh-webpack-plugin/loader/index.js
[1] You may need an additional loader to handle the result of these loaders.
[1] > export enum SomeEnum {
[1] |   VALUE1,
[1] |   VALUE2

我猜这是因为域 'app' 本身没有被 运行 引用,所以它的 webpack 配置被忽略了。但如果是这样的话,我怎样才能让它正常工作呢?

webpack.config.js

module.exports = {
  module: {
    rules: [{ test: /\.ts$/, use: 'ts-loader', exclude: '/node_modules/' }]
  }
}

tsconfig.json

{
  "compilerOptions": {
    "target": "es6",
    "module": "esnext",
    ...
  },
  "include": ["src"]

其他一些相关问题:

  1. 我不打算将共享代码放在 domain 中的模型之外,所以它有必要有一个 src 文件夹吗?我能以某种方式尽可能地获得它吗?还是它必须是一个完整的 运行nable 子项目?
  2. 在使用 yarn 工作区时是否需要在 package.json 中使用节点引用?

在决定不在凌晨 5 点编程后,我使用了不同的搜索词,最终 google 找到了答案。基本上,这个错误是由于 CRA 不允许 src 目录之外的代码。所以解决方法是弹出,使用 react-app-rewired,或者使用 craco,这是我使用的。回答我自己的其他问题:

  1. 我将 models 文件夹移到了 domain directory/package 的根目录中。我不知道这是否是好的做法,但查看没有 src 的导入路径让我感觉好多了。
  2. 没有