如果您像我一样使用 react-scripts 4.0.0,那么您需要做的就是删除该行(在我这边大约第 160 行):
paths: { value: undefined, reason: 'aliased imports are not supported' }
从文件node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js
我能够直接将我的 baseUrl 和路径配置添加到我的tsconfig.json
文件中,如下所示:
{
"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"
}
查看软件包文档中的最新说明