webpack搭建react项目 github源码
具体配置信息参照package.json和webpack.config.jscss
首先建立一个项目文件夹,并进入到该文件夹:html
mkdir react-webpack-projectpackage.json 中scripts中配置
node
"scripts": { "dev": "webpack --mode development", "build": "webpack --mode production" }
配置babel编译es6的代码,在根目录下新建.babelrc文件,并写入如下代码:react
{ "presets": [ "env" ] }9.经过npm安装babel
// webpack v4 const path = require('path'); module.exports = { entry: { main: './src/index.js' }, output: { path: path.resolve(__dirname, 'dist'), filename: 'main.js' }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: "babel-loader" } } ] } };
经过npm run dev发现babel版本太低报错,所以将babel版本升级,安装完成后npm run dev能进行正常打包webpack
npm i babel-loader@7.1.5 -D在dist文件夹下新建index.html文件,并写入如下内容,其中引用了css文件git
在src文件下新建style.css,写入任意css表达式,并将其引用至index.js中,再次经过npm run dev出现报错,提示“You may need an appropriate loader to handle this file type”,须要安装配置css-loaderes6
div{background-color:red};github
import "./style.css";经过npm下载css-loader和style-loader:web
npm install css-loader style-loader -D
另外还需安装extract-text-webpack-plugin插件(经过@next安装新版本,低版本在webpack4上没法正常运行):npm
npm install --save-dev extract-text-webpack-plugin@next
安装完成后对webpack.config.js进行配置,在rules中添加css-loader配置,引入extract-text-webpack-plugin并配置plugins,配置完成后经过npm run dev可正常进行编译
const ExtractTextPlugin = require('extract-text-webpack-plugin'); { test: /\.css$/, use: ExtractTextPlugin.extract( { fallback: 'style-loader', use: ['css-loader'] }) } plugins:[ new ExtractTextPlugin("styles.css") ]
在src下新建index.html文件:
<html> <head> <link rel="stylesheet" href="style.css"> </head> <body> <div>Hello, world!</div> <script src="main.js"></script> </body> </html>
安装html-webpack-plugin插件,并进行相应的配置:
npm install extract-text-webpack-plugin -D webpack.config.js中的配置信息以下: const HtmlWebpackPlugin = require('html-webpack-plugin'); plugins:[ new ExtractTextPlugin("styles.css"), new HtmlWebpackPlugin({ inject: false, hash: true, template: './src/index.html', filename: 'index.html' }) ]
经过配置webpack-dev-server开启web服务器,经过npm安装webpack-dev-server:
npm install webpack-dev-server -D
安装完成后,在webpack.config.js中配置devServer:
devServer:{ contentBase:path.resolve(__dirname,'dist'), publicPath:'/', port:8080, historyApiFallback:true }
最后,在package.json的scripts脚本中写入:
"start": "webpack-dev-server --config webpack.config.js" 如今,就能够经过npm run start命令启动项目啦~~~