使用纱线工作区导出枚举时出现意外令牌错误
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"]
其他一些相关问题:
- 我不打算将共享代码放在
domain
中的模型之外,所以它有必要有一个 src 文件夹吗?我能以某种方式尽可能地获得它吗?还是它必须是一个完整的 运行nable 子项目?
- 在使用 yarn 工作区时是否需要在 package.json 中使用节点引用?
在决定不在凌晨 5 点编程后,我使用了不同的搜索词,最终 google 找到了答案。基本上,这个错误是由于 CRA 不允许 src 目录之外的代码。所以解决方法是弹出,使用 react-app-rewired
,或者使用 craco
,这是我使用的。回答我自己的其他问题:
- 我将
models
文件夹移到了 domain
directory/package 的根目录中。我不知道这是否是好的做法,但查看没有 src
的导入路径让我感觉好多了。
- 没有
我有一个打字稿项目,结构如下:
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"]
其他一些相关问题:
- 我不打算将共享代码放在
domain
中的模型之外,所以它有必要有一个 src 文件夹吗?我能以某种方式尽可能地获得它吗?还是它必须是一个完整的 运行nable 子项目? - 在使用 yarn 工作区时是否需要在 package.json 中使用节点引用?
在决定不在凌晨 5 点编程后,我使用了不同的搜索词,最终 google 找到了答案。基本上,这个错误是由于 CRA 不允许 src 目录之外的代码。所以解决方法是弹出,使用 react-app-rewired
,或者使用 craco
,这是我使用的。回答我自己的其他问题:
- 我将
models
文件夹移到了domain
directory/package 的根目录中。我不知道这是否是好的做法,但查看没有src
的导入路径让我感觉好多了。 - 没有