如何防止babel将全局重命名为全球$ 1

时间:2018-05-22 09:42:14

标签: javascript babeljs rollup

这是一个类似的问题Prevent rollup from renaming Promise to Promise$1 ,但我的问题仍未得到解决。

我使用Rollup和babel捆绑了许多模块,包括变量global

当我没有使用Babel Plugins时,它会输出global,这就是我需要的东西

但是,当我使用Babel Plugins时,会输出global$1

如何防止重命名?

这里去代码

    {li> in .babelrc我使用一些插件来转换我的代码
{
  "presets": [
    [
      "env",
      {
        "modules": false
      }
    ]
  ],
  "plugins": [               // I use some plugins to transform my code
    "external-helpers",
    "transform-object-rest-spread",
    "transform-object-assign"
  ]
}
{
    plugins: [
      paths,
      resolve({
        jsnext: true,
        main: true
      }),
      commonjs({
        include: 'node_modules/**'
      }),
      inject({                 // use `rollup-plugin-inject`
        global: './global.js'
      }),
      babel({
        exclude: 'node_modules/**'
      })
    ]
  }
}
  • global.js:导出变量' global'
var global = this
export default global
  • index.js:导入变量' global'
import global from './global'

console.log('index.js:', global);

并转换为代码:

'use strict';

var global = this;

console.log('index.js:', global);

然而,当我添加如下代码时:

  • index.js:添加将由Babel Plugin
  • 转换的Object.assign
'use strict';

var global = this;

let foo = Object.assign({}, { bar: 5 })  // Here ~

然后,在转换之后,结果是:

'use strict';

var global$1 = this;             // the global is renamed to global$1

var _extends = Object.assign || ...

var c = _extends({}, { p: 5 });

如您所见,变量global已重命名为global$1

有什么想法可以防止重命名?

0 个答案:

没有答案