当我尝试运行使用 babel 6 的服务器时,出现以下错误:
错误:/path/to/myapp/server.js:t.Identifier:传递的参数过多。收到3个但最多只能收到1个
这是我的 package.json
的样子:
{
"scripts": {
"start": "node app.js",
"postinstall": "bash ./scripts/npm-post.sh",
"test": "mocha test"
},
"dependencies": {
"babel": "^6.0.15",
"babel-core": "^6.0.20",
"babel-preset-react": "^6.0.15",
"babel-preset-stage-0": "^6.0.15",
"react": "^0.14.2",
"react-dom": "^0.14.2",
"react-helmet": "^2.1.1",
"react-router": "^1.0.0-rc3",
"reactify": "^1.1.1",
},
"devDependencies": {
"babel-preset-es2015": "^6.0.15",
}
}
这是我的 app.js
require('babel-core/register')({
"presets": [
"es2015",
'react'
]
});
require('./server.js')
和server.js
console.log('hi')
hi
没有打印到控制台。
最佳答案
我已经解决了这个问题,它似乎是 babel-plugin-transform-react-jsx
v6.0.14 版本中的一个错误,在这里:
https://github.com/babel/babel/blob/v6.0.14/packages/babel-plugin-transform-react-jsx/src/index.js#L36
最新版本的babel react preset需要v6.0.14版本的插件 https://github.com/babel/babel/blob/master/packages/babel-preset-react/package.json#L13
babel-plugin-transform-react-jsx
的最新版本 (v6.0.18) 修复了这个问题。
https://github.com/babel/babel/blob/master/packages/babel-plugin-transform-react-jsx/src/index.js#L36
所以当我使用react
预设时,我得到了上面的错误。
为了修复它,我将 babel 配置更改为以下内容(请注意,我切换到使用 .babelrc
而不是 app.js
中的内联配置,但是结果应该是一样的。
.babelrc
是:
{
"presets": ["es2015", "react"]
}
.babelrc
现在是:
{
"presets": ["es2015"],
"plugins": ["transform-react-jsx"]
}
package.json
现在添加了依赖项
"babel-plugin-transform-react-jsx": "^6.0.18",
关于javascript - 巴别塔 6 : Too many arguments passed error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500903/