如果您像我一样使用 react-scripts 4.0.0,那么您需要做的就是删除该行(大约在我这边的第 160 行):
paths: { value: undefined, reason: 'aliased imports are not supported' }
从文件 node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js
我能够tsconfig.json
像这样直接将我的 baseUrl 和路径配置添加到我的文件中:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@domain/*": ["../src/domain/*"],
},
}
}
最后编译并继续我的生活。
按照惯例,YMMV。请测试你的东西。这显然是一个黑客,但它对我有用,所以我在这里发帖以防它对某人有所帮助。
如果您想与您的团队分享,这里有一个补丁:
diff --git a/node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js b/node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js
index 00139ee..5ccf099 100644
--- a/node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js
+++ b/node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js
@@ -156,7 +156,8 @@ function verifyTypeScriptSetup() {
: 'react',
reason: 'to support the new JSX transform in React 17',
},
- paths: { value: undefined, reason: 'aliased imports are not supported' },
+ // Removed this line so I can add paths to my tsconfig file
+ // paths: { value: undefined, reason: 'aliased imports are not supported' },
};
编辑
根据@Bartekus 在评论线程中的深思熟虑的建议,当我需要将(可能)这样的临时更改添加到 npm 包时,我正在添加有关我使用的包的信息:patch-package
包本质上提供了一种以更清晰的方式对包进行更改的方法。特别是当您考虑协作时,直接更改 npm 文件并继续前进会变得非常麻烦。下次更新该包时,甚至在新机器上开始开发并运行时,npm install
您的更改都将丢失。此外,如果您的团队成员在同一个项目上工作,他们将永远不会继承更改。
本质上,您要通过以下步骤来修补软件包:
# fix a bug in one of your dependencies
vim node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js
# run patch-package to create a .patch file
npx patch-package react-scripts
# commit the patch file to share the fix with your team
git add patches/react-scripts+4.0.0.patch
git commit -m "Enable aliased imports in react-scripts"
下次有人签出项目并安装它时,由于您在设置期间添加的安装后脚本,补丁将自动应用:
"scripts": {
+ "postinstall": "patch-package"
}
查看软件包文档中的最新说明