将babel 6升级到7后,@ babel / preset-env加载了错误的babel版本

时间:2018-10-12 03:57:38

标签: babeljs babel babel-plugin babel-preset-env

我试图将通天塔从6升级到7,但是遇到了这个问题。

/Users/darryl/Documents/Github/apps/node_modules/babel-register/node_modules/babel-core/lib/transformation/file/options/option-manager.js:328
        throw e;
        ^

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. (While processing preset: "/Users/darryl/Documents/Github/apps/node_modules/@babel/preset-env/lib/index.js")
    at throwVersionError (/Users/darryl/Documents/Github/apps/node_modules/@babel/preset-env/node_modules/@babel/helper-plugin-utils/lib/index.js:65:11)
    at Object.assertVersion (/Users/darryl/Documents/Github/apps/node_modules/@babel/preset-env/node_modules/@babel/helper-plugin-utils/lib/index.js:13:11)
    at _default (/Users/darryl/Documents/Github/apps/node_modules/@babel/preset-env/lib/index.js:154:7)
    at /Users/darryl/Documents/Github/apps/node_modules/@babel/preset-env/node_modules/@babel/helper-plugin-utils/lib/index.js:19:12
    at /Users/darryl/Documents/Github/apps/node_modules/babel-register/node_modules/babel-core/lib/transformation/file/options/option-manager.js:317:46
    at Array.map (<anonymous>)
    at OptionManager.resolvePresets (/Users/darryl/Documents/Github/apps/node_modules/babel-register/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
    at OptionManager.mergePresets (/Users/darryl/Documents/Github/apps/node_modules/babel-register/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
    at OptionManager.mergeOptions (/Users/darryl/Documents/Github/apps/node_modules/babel-register/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
    at OptionManager.init (/Users/darryl/Documents/Github/apps/node_modules/babel-register/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
    at compile (/Users/darryl/Documents/Github/apps/node_modules/babel-register/lib/node.js:103:45)
    at loader (/Users/darryl/Documents/Github/apps/node_modules/babel-register/lib/node.js:144:14)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/darryl/Documents/Github/apps/node_modules/babel-register/lib/node.js:154:7)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

有人可以帮助解释发生了什么吗? 我试图删除node_modules和package-lock.json,还运行npm cache clean --force

但是仍然发生此错误。 如何强制此依赖项(@ babel / preset-env)在其依赖项中使用Babel 7而不是Babel 6.26.3?

1 个答案:

答案 0 :(得分:1)

loganfsmyth所述,做

const input = ["access","edit","delete"];

console.log(
  input.reduce((obj, key) => ({...obj, [key]: true}), {})
);

帮助我解决有关此npm i -D @babel/register 依赖项(仍使用Babel版本6)的问题。