gpt4 book ai didi

javascript - 使用 Babel 的 `sourceRoot` 不影响导入

转载 作者:太空宇宙 更新时间:2023-11-04 16:13:20 25 4
gpt4 key购买 nike

目前我能做的:

require('./frontend/src/components/SomeComponent');

但是如果我在 webpack.config.js 中设置以下内容:

resolve: {
root: path.resolve('frontend', 'src')
}

我可以这样做:

require('components/SomeComponent');

问题是,当我不使用 Webpack(例如在测试环境中)时,我的所有导入都会中断。根据 Babel 文档,sourceRoot属性设置“所有源都是相对的根”。这让我觉得我可以将以下内容添加到我的 .babelrc 中修复我的导入:

"sourceRoot": "frontend/src"

...但没有这样的运气。当我这样做时require('components/SomeComponent');babel-node它失败。当我只是使用 Babel 转译文件时,require无论我是否设置 sourceRoot ,线路都是相同的.

所以,我的问题是,有没有办法(有或没有 sourceRoot )来模拟 webpack 的 resolve.root在巴别塔?

附注我知道有几个 Babel 插件可以解决这个问题,但我见过的所有插件都要求您添加 ~require路径(这当然会破坏 Webpack 中的导入)。

最佳答案

许多项目都有 webpack + babel,并且在许多项目中您有时会绕过 webpack(如您的情况 - 用于测试)。

在这种情况下,所有解析别名都应该存在于 babel 中。

有一些插件可以让一个人读取另一个人的配置(以及类似的 eslint 等插件)。

关于javascript - 使用 Babel 的 `sourceRoot` 不影响导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41274472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com