【发布时间】:2019-06-27 17:24:05
【问题描述】:
我用 CRA 创建了一个 react 应用并添加了react-app-rewired和TypeScript
我在tsconfig.json中映射了一些模块
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@constants/*": ["constants/*"],
"@components/*": ["components/*"],
"@grid/*": ["components/Grid/*"],
"@grid-share/*": ["components/Grid/Share/*"],
"@utils/*": ["util/*"],
"@services/*": ["Services/*"]
}
},
"extends": "../tsconfig.json"
}
并将它们定义为config-overrides.js中的别名模块
const path = require('path');
const { override, addBabelPlugins } = require('customize-cra');
module.exports = override(
...addBabelPlugins(
[
'module-resolver',
{
root: ["./src"],
alias: {
"@constants": "./src/constants",
"@components": "./src/components",
"@grid": "./src/components/grid",
"@utils": "./src/util",
"@services": "./src/Services",
"@grid-share": "./src/components/Grid/Share"
}
}
],
),
);
对于yarn start,一切正常,但对于yarn test,它无法解析定义的模块。我应该怎么做才能解析jest的别名模块?
【问题讨论】:
-
您是否尝试过设置
NODE_PATH=src而不是使用别名? -
我在 .env 中添加 NODE_PATH 时使用打字稿,它显示一个警告,指出它已被弃用
-
我只是友好地指出你不需要 react-app-rewired,CRA 支持它;并且在将 CRA 更新到较新版本时,重新布线也会带来很多麻烦。这是链接:facebook.github.io/create-react-app/docs/…
-
@ChristopherFrancisco:实际上它不在我的控制范围内。应用程序已实现,公司都是管理 UI 模板,这迫使我们重新布线