Я создаю проект npm (moduleA) и опубликую его в реестре npm. Он использует JavaScript с webpack4
и babel7
. Он работает нормально сам по себе, но есть некоторые проблемы, когда я пытаюсь протестировать проект из другого модуля. Тестовый проект использует babel 6.26.3
с webpack2
. Когда я строю тестовый проект, я получаю ошибку ниже:
ERROR in /Users/dev/moduleA/build/index.js
Module build failed: Error: Requires Babel "^7.0.0-0", but was loaded
with "6.26.3". If you are sure you have a compatible version of
@babel/core, it is likely that something in your build process is loading
the wrong version. Inspect the stack trace of this error to look for the
first entry that doesn't mention "@babel/core" or "babel-core" to see what
is calling Babel.
Первая строка в выводе ошибки выше о пакете moduleA
, который имеет зависимость babel7. Я ожидаю, что артефакт сборки из moduleA
не должен содержать никакой информации о babel. Но похоже, что moduleA
приводит babel7 в тестовый проект, что противоречит тестовому проекту babel6. Как я могу решить эту проблему в модуле A?
Ниже приведено moduleA
Конфигурация babelrc:
{
"presets": [
"@babel/preset-env"
],
"plugins": [
["@babel/plugin-proposal-decorators", { "legacy": true }],
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-async-to-generator",
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-proposal-export-default-from",
"@babel/plugin-syntax-export-default-from",
"@babel/plugin-proposal-export-namespace-from"
]
}
Зависимости babel в moduleA
:
"devDependencies": {
"@babel/cli": "^7.2.3",
"@babel/core": "^7.2.0",
"@babel/plugin-proposal-class-properties": "^7.2.3",
"@babel/plugin-proposal-decorators": "^7.2.3",
"@babel/plugin-proposal-export-default-from": "^7.2.0",
"@babel/plugin-proposal-export-namespace-from": "^7.2.0",
"@babel/plugin-proposal-function-sent": "^7.2.0",
"@babel/plugin-proposal-json-strings": "^7.2.0",
"@babel/plugin-proposal-numeric-separator": "^7.2.0",
"@babel/plugin-proposal-object-rest-spread": "^7.2.0",
"@babel/plugin-proposal-throw-expressions": "^7.2.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-syntax-export-default-from": "^7.2.0",
"@babel/plugin-syntax-import-meta": "^7.2.0",
"@babel/plugin-transform-arrow-functions": "^7.2.0",
"@babel/plugin-transform-async-to-generator": "^7.2.0",
"@babel/plugin-transform-runtime": "^7.2.0",
"@babel/preset-env": "^7.2.3",
"@babel/preset-es2015": "^7.0.0-beta.53",
...