Как предотвратить переименование babel от глобального к глобальному $ 1 - PullRequest
0 голосов
/ 22 мая 2018

здесь похожий вопрос Запрет накопительного переименования Promise to Promise $ 1 , но моя проблема все еще не решена.

Я использую Rollup и babel для объединения нескольких модулей, включая переменную global.

когда я не использовал Babel Plugins, он выводит global, это то, что мне нужно

Однако, когда я использую Babel Plugins, он выводит global$1

Как предотвратить переименование?

здесь идет код

  • в .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: добавьте Object.assign, который будет преобразован плагином Babel
'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

Есть какая-нибудь идея, чтобы предотвратить переименование ???

...