我遇到通天塔路径移植的怪异行为。在我的项目中,某些模块如下所示
import module from '~modulename'
其中〜表示从项目目录的根目录导入给定的“模块名”。现在,这对于开发人员(运行项目的Babel节点)如何正常工作。但是,当我在我的项目上运行babel src -d lib
来进行es6 js编译时,所有内容都进行了转换(反堆),但是在构建时却没有这样,我总是留下require('~modulename')
而不是require('../../...modulename')
。 / p>
我尝试过的解决方案
Babel.config.js
module.exports = __babel => {
// Use cache.
__babel.cache(true)
// Return configuration.
return {
'presets': [
[
'@babel/preset-env',
{
'modules': false
}
]
],
'plugins': [
'@babel/plugin-proposal-throw-expressions',
'@babel/plugin-proposal-export-default-from',
'dynamic-import-node',
'babel-plugin-root-import',
['babel-plugin-module-resolver', { 'alias': { '~': './' } }]
['module-resolver', { 'root': ['./', 'packages/*'] }],
['@babel/plugin-transform-modules-commonjs', { 'allowTopLevelThis': true }],
['@babel/plugin-transform-runtime', { 'regenerator': true }]
],
'env': {
'production': {
'presets': ['minify'],
'plugins': [
'transform-remove-console',
'minify-dead-code-elimination'
]
}
}
}
}