Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Babel 6:传递的参数太多错误_Javascript_Babeljs - Fatal编程技术网

Javascript Babel 6:传递的参数太多错误

Javascript Babel 6:传递的参数太多错误,javascript,babeljs,Javascript,Babeljs,当我尝试运行使用babel 6的服务器时,出现以下错误: 错误:/path/to/myapp/server.js:t。标识符:传递的参数太多。收到3个,但最多只能收到1个 下面是我的package.json的样子: { "scripts": { "start": "node app.js", "postinstall": "bash ./scripts/npm-post.sh", "test": "mocha test" }, "dependencies": { "

当我尝试运行使用babel 6的服务器时,出现以下错误:

错误:/path/to/myapp/server.js:t。标识符:传递的参数太多。收到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')
console.log('hi')
server.js

require('babel-core/register')({
  "presets": [
    "es2015",
    'react'
  ]
});
require('./server.js')
console.log('hi')

hi
没有打印到控制台。

我已经解决了这个问题,它似乎是
babel-plugin-transform-react jsx的v6.0.14版本中的一个bug,这里:

最新版本的babel react预置需要该插件的v6.0.14版本

babel-plugin-transform-resact-jsx的最新版本(v6.0.18)修复了这个问题。

因此,当我使用
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",

我通过卸载
babel preset react
插件,然后重新安装,使其安装了最新的依赖项,从而解决了这个问题。如果这不起作用,您可能需要
rm-rf节点_模块
并删除您的
shrinkwrap
,如果有,然后重新运行
npm安装