我正在尝试在react
js中路由一些组件。所以我安装了npm
install serve --save-dev
。我运行此评论后“
npm run serve
我遇到了一些错误。
这是我的包文件。
{
"name": "routing",
"version": "1.0.0",
"description": "routing test",
"main": "index.js",
"scripts": {
"watch": "webpack -d --watch",
"build": "webpack",
"serve" : "serve ./public"
},
"author": "VJ",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.23.1",
"babel-loader": "^6.4.0",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.23.0",
"serve": "^5.0.2",
"webpack": "^2.2.1"
},
"dependencies": {
"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-router": "^4.0.0"
}
}
这是我的网络包文件
var webpack = require('webpack');
var path = require('path');
var BUILD_DIR = path.resolve(__dirname, 'public');
var APP_DIR = path.resolve(__dirname, 'src');
var config = {
entry: APP_DIR + '/index.jsx',
output: {
path: BUILD_DIR,
filename: 'bundle.js'
},
module : {
Loaders: [
{
test : /\.jsx?/,
include : APP_DIR,
loader : 'babel-loader'
}
]
}
};
module.exports = config;
答案 0 :(得分:0)
您需要先从ES6编译到ES5。
作为参考,用户应该像您一样添加babel-preset-es2015
包。
npm install babel-preset-es2015
然后,使用以下内容创建.babelrc:
{
"presets":
[
"es2015",
...
]
}
注意:默认情况下,最新版本的节点支持ES6销毁。因此,更新节点版本可能有助于解决您的问题。
答案 1 :(得分:0)
您正在运行一个不支持Destructuring的旧版Node.js。
包serve
使用该功能,因此您至少需要Node.js版本6,这是当前的LTS。它甚至在README中表示它,并且它也在package.json中指定。
最简单,最好的解决方案是升级Node.js.或者你可以用babel来转换模块,但这很不方便。