npm init -y
npm install webpack webpack-cli --save-dev
// webpack.config.js
module.exports = {
...
}
module.exports = {
mode: 'development'
}
const path = require('path')
module.exports = {
entry: path.join(__dirname, './src/index.js'), // 入口文件
output: {
path: path.join(__dirname, './dist'), // 輸出目錄
filename: 'bundle.js' // 輸出文件
}
}
webpack文件加載器,webpack默認只能打包處理.js文件,其他非.js后綴文件需要loader加載器處理完成后才能進行打包
站在用戶的角度思考問題,與客戶深入溝通,找到德江網(wǎng)站設計與德江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋德江地區(qū)。
npm install style-loader css-loader less-loader --save-dev
module.exports = {
rules: [
{ test: /\.css$/, use: ['style-loader', 'css-loader'] }, // css文件處理
{ test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] }, // less文件處理
]
}
npm install url-loader file-loader csv-loader xml-loader --save-dev
module.exports = {
rules: [
// url參數(shù)形式配置
{ test: /\.jpg|png|gif$/, use: 'url-loader?limit=' },
// url參數(shù)options形式配置
{
test: /\.jpg|png|gif$/,
use: {
loader: 'url-loader',
options: {
limit: ,
outputPath: 'image' // 明確指定打包生成的圖片文件存放到dist目錄下的image文件夾中
}
}
},
// 字體文件
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
use: {
loader: 'url-loader',
options: { limit: }
}
},
// csv文件
{
test: /\.(csv|tsv)$/i,
use: {
loader: 'csv-loader'
}
},
// xml文件
{
test: /\.xml$/i,
use: {
loader: 'xml-loader'
}
}
]
}
npm install ... --save-dev
名稱 | 描述 |
---|---|
@babel/core | babel核心工具 |
@babel/preset-env | babel預定義環(huán)境 |
babel-loader | babel加載器,編譯js文件用 |
core-js | 使老版本瀏覽器兼容新版ES語法 |
module.exports = {
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
// 設置預定義環(huán)境
presets: [
[
'@babel/preset-env', // 指定環(huán)境的插件
// 配置信息
{
// 兼容的瀏覽器目標版本
targets: {
'chrome': '58',
'ie': '11'
},
// 指定core.js版本
'corejs': '3',
// 使用corejs方式 'usage':按需加載
'useBuiltIns': 'usage'
}
]
]
}
}
}
]
}
npm install webpack-dev-server --save-dev
"scripts": {
"dev": "webpack serve"
}
npm run dev
module.exports = {
devServer: {
open: true, // npm run dev后,自動打開瀏覽器
host: '127.0.0.1', // 主機地址
port: 8080 // 端口號,默認為8080
}
}
npm install html-webpack-plugin --save-dev
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html' // 指定入口自定義的html文件
})
]
}
npm install clean-webpack-plugin --save-dev
const CleanWebpackPlugin = require('clean-webpack-plugin')
module.exports = {
plugins: [
new CleanWebpackPlugin()
]
}
source-map inline-source-map eval-source-map
module.exports = {
// eval-source-map 使"運行報錯的行數(shù)"與”源代碼行數(shù)“保持一致,但性能較低
devtool: 'eval-source-map'
}
eval-source-map
,可以精準定位到具體的錯誤行nosources-source-map
,防止源碼泄露,提高安全性"scripts": {
"build": "webpack --mode production"
}
npm run build
更多配置可查看官方文檔