console.log(123);
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "webpack --mode development", // (開發模式) "build": "webpack --mode production" // (生產模式) },
開發模式生成的文件不壓縮javascript
生產模式生成的文件壓縮css
const path = require("path") module.exports = { entry: "./src/index.js", // 入口 output: { // 出口 filename: "bundle.js", // 生成打包文件的名字 path: path.join(__dirname, "dist") // 打包文件的路徑,__dirname指當前根目錄 } }
此時運行npm run dev,在dist文件夾下就能看到打包生成的bundle.js文件html
module.exports = { entry: { // 多文件入口 index: "./src/index.js", test: "./src/test.js" }, output: { // 出口 filename: "[name].bundle.js", // 生成打包文件的名字 ==>注意這裏,由於是多文件入口,全部須要[name]來區分文件 path: path.join(__dirname, "dist") // 打包文件的路徑,__dirname指當前根目錄 } }
運行npm run devjava
devServer: { // 設置基本目錄結構 contentBase: path.join(__dirname, "dist"), // 服務器的ip地址,也可使用localhost host: "localhost", // 服務端壓縮是否開啓 compress: true, // 配置服務端口號 port: 8080 }
修改package.json內容爲webpack
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "serve": "webpack-dev-server --mode development", "dev": "webpack --mode development", "build": "webpack --mode production" },
運行npm run serveweb
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <div id="main"> hello </div> </body> </html>
在webpack.config.js中進行配置npm
開頭引入插件json
const HtmlWebpackPlugin = require('html-webpack-plugin')
在plugins配置數組
plugins: [ new HtmlWebpackPlugin({ filename: 'index.html', template: './src/inde.html', // chunks: ['index'], // 多入口時須要用到 hash: true // 插入的文件後面加一段隨機數 }) ],
運行npm run serve,瀏覽器中打開localhost:8080瀏覽器
#main{ height: 100px; width: 100px; font-size: 40px; color: #FF6347; background-color: pink; }
須要安裝css-loader,style-loader
module: { rules:[ // css loader { test: /\.css$/, use: ["style-loader", "css-loader"] // 這裏順序不能顛倒 } ] },
new ExtractTextPlugin({ filename: "index.css", })
rules:[ // css loader { test: /\.css$/, use: ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) } ]
.bg{ height: 50px; width: 50px; background: url("./img/confirm.png") }
// 圖片 loader { test: /\.(png|jpg|gif|jpeg)/, use: [{ loader: 'url-loader', options: { limit: 500 //是把小於500B的文件打成Base64的格式,寫入JS } }] }
options: { limit: 500, //是把小於500B的文件打成Base64的格式,寫入JS outputPath: 'images/' //打包後的圖片放到images文件夾下 }
{ test: /\.(htm|html)$/i, use: ["html-withimg-loader"] }
// less loader { test: /\.less$/, use: ["style-loader", "css-loader", "less-loader"] }
@bgColor: #FFA54F; .my{ height: 100px; width: 100px; background-color: @bgColor; }
// less loader { test: /\.less$/, use: ExtractTextPlugin.extract({ fallback: "style-loader", use: ["css-loader", "less-loader"] }), }
module.exports = { plugins: [ require('autoprefixer') //自動添加前綴插件 ] }
// css loader { test: /\.css$/, use: ExtractTextPlugin.extract({ fallback: "style-loader", use: ["css-loader", "postcss-loader"] }) },