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命令啓動項目啦~~~