BABEL: Unknown option: base.Children

2019-04-28 13:46发布

问题:

I just did a npm update and got some new package versions. This broke my build, leaving me unable to use the default updateSchema.js from https://github.com/relayjs/relay-starter-kit/blob/master/scripts/updateSchema.js.

If anyone has already dealt with this issue, it would be greatly appreciated if you could share your solution.

I am aware that some options were removed in the new Babel 6 version (https://gist.github.com/hzoo/7e78b12d99e326f2e04f). The npm-debug.log file looks like this:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'update' ]
2 info using npm@2.14.12
3 info using node@v4.2.4
4 verbose run-script [ 'preupdate', 'update', 'postupdate' ]
5 info preupdate bifrost@1.0.0
6 info update bifrost@1.0.0
7 verbose unsafe-perm in lifecycle true
8 info bifrost@1.0.0 Failed to exec update script
9 verbose stack Error: bifrost@1.0.0 update: `babel-node ./scripts/helpers/updateSchema.js`
9 verbose stack Exit status 1
9 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\lifecycle.js:214:16)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at EventEmitter.emit (events.js:172:7)
9 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\spawn.js:24:14)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at ChildProcess.emit (events.js:172:7)
9 verbose stack     at maybeClose (internal/child_process.js:818:16)
9 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
10 verbose pkgid bifrost@1.0.0
11 verbose cwd C:\bifrostApp
12 error Windows_NT 10.0.10586
13 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "update"
14 error node v4.2.4
15 error npm  v2.14.12
16 error code ELIFECYCLE
17 error bifrost@1.0.0 update: `babel-node ./scripts/helpers/updateSchema.js`
17 error Exit status 1
18 error Failed at the bifrost@1.0.0 update script 'babel-node ./scripts/helpers/updateSchema.js'.
18 error This is most likely a problem with the bifrost package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error     babel-node ./scripts/helpers/updateSchema.js
18 error You can get their info via:
18 error     npm owner ls bifrost
18 error There is likely additional logging output above.
19 verbose exit [ 1, true ]

The commandline error looks like this:

ReferenceError: [BABEL] C:\bifrostApp\scripts\helpers\updateSchema.js: Unknown option: base.Children. Check out http://babeljs.io/docs/usage/options/ for more info
at Logger.error (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-core\lib\transformation\file\logger.js:39:11)
at OptionManager.mergeOptions (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-core\lib\transformation\file\options\option-manager.js:267:20)
at OptionManager.init (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-core\lib\transformation\file\options\option-manager.js:465:10)
at File.initOptions (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-core\lib\transformation\file\index.js:194:75)
at new File (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-core\lib\transformation\file\index.js:123:22)
at Pipeline.transform (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-core\lib\transformation\pipeline.js:45:16)
at Object.transformFileSync (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-core\lib\api\node.js:124:10)
at compile (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-register\lib\node.js:98:20)
at loader (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-register\lib\node.js:126:14)
at Object.require.extensions.(anonymous function) [as .js] (C:\bifrostApp\node_modules\babel-cli\node_modules\babel-register\lib\node.js:136:7)

回答1:

Make sure the presets listed in your .babelrc file are installed in your node_modules folder.

For example, if you have the following in your .babelrc file:

    {
      "presets": ["react", "es2015"]
    }

You will need "babel-preset-es2015" and "babel-preset-react" installed with npm install --save.



回答2:

I upgraded from npm 2 -> npm 3, and downgraded babel-core to 6.5.2, this made it work.