微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

我猜这是因为域“应用程序”本身没有运行,只是被引用,所以它的 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 文件夹?我可以以某种方式使其尽可能简单,还是必须是一个完整的可运行子项目?
  2. 在使用 yarn 工作空间时是否需要在 package.json 中使用节点引用?

解决方法

在决定不在凌晨 5 点编程后,我使用了不同的搜索词,终于能够在谷歌上搜索答案。基本上,这个错误是由于 CRA 不允许 src 目录之外的代码。所以修复要么弹出,使用react-app-rewired,要么使用craco,这是我所用的。回答我自己的其他问题:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。