如何解决使用纱线工作区导出枚举时出现意外令牌错误
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"]
其他一些相关问题:
- 我不打算将共享代码放在
domain
中的模型之外,所以它是否需要有一个 src 文件夹?我可以以某种方式使其尽可能简单,还是必须是一个完整的可运行子项目? - 在使用 yarn 工作空间时是否需要在 package.json 中使用节点引用?
解决方法
在决定不在凌晨 5 点编程后,我使用了不同的搜索词,终于能够在谷歌上搜索答案。基本上,这个错误是由于 CRA 不允许 src 目录之外的代码。所以修复要么弹出,使用react-app-rewired
,要么使用craco
,这是我所用的。回答我自己的其他问题:
- 我将
models
文件夹移到domain
目录/包的根目录中。我不知道这是否是一种好的做法,但看着没有src
的导入路径让我感觉好多了。 - 没有
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。