【发布时间】:2020-12-15 10:41:07
【问题描述】:
我想使用源版本 (github.com/babel) 而不是打包版本 (npm @babel/*) 将 babel 嵌入到我的项目中,以便更好地 (webpack) 摇树 (@babel/* 是 cjs 而github.com/babel 是 mjs/ts/flow)。
我使用需要 node_modules/@babel/* 的第三方库,我想配置 TypeScript 以使其使用 node_modules/babel/packages/babel-*/src。
我知道 TypeScript 中没有模块别名。
我尝试使用compilerOptions.paths 没有成功:
paths: {
'@babel/code-frame': ['babel/packages/babel-code-frame/src'],
'@babel/...': ['babel/packages/babel-.../src'],
...
}
有什么技巧可以让@babel/* 指向babel/packages/babel-*/src 吗?
注意:在我的 webpack 配置文件中,我使用:
resolve: {
alias: {
'@babel/code-frame': 'babel/backages/babel-code-frame/src',
我正在寻找打字稿的等价物。
相关上下文:https://github.com/FranckFreiburger/vue3-sfc-loader/issues/7
(如有必要,请随时向我询问更多详细信息)
编辑: 我认为这个问题的解决注定要失败,因为(AFAIK)TypeScript 无法导入flow 文件。我唯一的选择是等待Migrate Babel from Flow to TypeScript PR 的解决。
【问题讨论】:
-
你有正确的想法:将 Webpack 别名与 TS 路径对齐。您只需要修复您的 tsconfig.json 路径,以便它们实际上指向某些东西。它们需要相对于 baseUrl,因此需要以 node_modules 为前缀
-
我只是对文件夹进行符号链接。
-
Typescript 仅在构建时。答案取决于您使用的运行时。 Webpack、节点、ts-node?span>
-
对不起,我看到你正在使用 Webpack。对于打字稿,您需要提供相对文件路径,如
./node_modules/babel/packages...。该路径相对于tsconfig.json中的baseUrl参数。
标签: javascript typescript webpack babeljs vue3-sfc-loader