【发布时间】:2018-04-05 19:47:43
【问题描述】:
我正在尝试让我的 webpack 环境将 jsx/es6 语法编译回常规的 es5 javascript。但是,当我运行“开始”脚本时,它给了我一个指向 ReactDom.render 方法的语法错误。
我环顾四周,我认为我的 webpack.config.js 设置不正确。
webpack.config.js
module.exports = {
entry: [
'./src/index.js'
],
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: ['babel-loader']
}
]
},
resolve: {
extensions: ['*', '.js', '.jsx']
},
output: {
path: __dirname + '/dist',
publicPath: '/',
filename: 'bundle.js'
},
devServer: {
contentBase: './dist'
}
};
package.json
{
"name": "react-boilerplate",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"bable": {
"presets": [
"env",
"react",
"stage-2"
]
},
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.4",
"babel-preset-env": "^1.6.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"webpack": "^4.5.0",
"webpack-cli": "^2.0.13",
"webpack-dev-server": "^3.1.1"
},
"dependencies": {
"express": "^4.16.3",
"react": "^16.3.1",
"react-dom": "^16.3.1"
},
"scripts": {
"start": "webpack-dev-server --config ./webpack.config.js --mode development"
}
}
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));
【问题讨论】:
-
你有启用那些 Babel 预设的
.babelrc吗?你需要安装它们并告诉 Babel 启用它们。 -
我没有 babelrc,因为我认为它是可选的。这是因为 artem 为我指明了方向。这样做有什么缺点吗?
标签: webpack babeljs webpack-dev-server