package.json文件中
{
"name": "webpack3",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "webpack-dev-server "
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.7.0",
"babel-preset-stage-0": "^6.24.1",
"file-loader": "^6.1.0",
"node-sass": "^4.14.1",
"sass-loader": "^7.3.1",
"url-loader": "^4.1.0",
"webpack": "^4.27.1",
"webpack-cli": "^3.1.2",
"webpack-dev-server": "^3.1.9"
},
"dependencies": {
"bootstrap": "^3.3.5",
"css-loader": "^4.3.0",
"html-webpack-plugin": "^4.4.1",
"jquery": "^3.5.1",
"less-loader": "^7.0.1",
"style-loader": "^1.2.1"
}
}
webpack.config.js文件中
// 导入处理路径的模块
var path = require('path');
// 启用热更新的 第2步
const webpack = require('webpack')
//帮我们把html配置到内存中,把打包后的bundle.js注入到html中
var htmlWebpackPlugin = require('html-webpack-plugin');
// 导出一个配置对象,将来webpack在启动的时候,会默认来查找webpack.config.js,并读取这个文件中导出的配置对象,来进行打包处理
module.exports = {
entry: path.resolve(__dirname, 'src/main.js'), // 项目入口文件
output: { // 配置输出选项
path: path.resolve(__dirname, 'dist'), // 配置输出的路径
filename: 'bundle.js' // 配置输出的文件名
},
mode:'development',
devServer: {
// 这是配置 dev-server 命令参数的第二种形式,相对来说,这种方式麻烦一些
// --open --port 3000 --contentBase src --hot
open: true, // 自动打开浏览器
port: 3000, // 设置启动时候的运行端口
contentBase: 'src', // 指定托管的根目录
hot: true // 启用热更新 的 第1步,只更改修改部分
},
plugins: [ // 配置插件的节点
new webpack.HotModuleReplacementPlugin(), // new 一个热更新的 模块对象, 这是 启用热更新的第 3 步
// 添加plugins节点配置插件
new htmlWebpackPlugin({
template:path.resolve(__dirname, 'src/index.html'),//模板路径
filename:'index.html'//自动生成的HTML文件的名称
})
],
module: {
rules: [
// 匹配以.css结尾的文件
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
//处理css文件的规则
{ test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
{ test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
{ test: /\.(ttf|eot|svg|woff|woff2)$/,
use: [
{
loader:'url-loader'
}
]
}, // 处理 字体文件的 loader
{ test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ }
]
}
}
.babelrc文件中
{
"presets": ["env", "stage-0"],
"plugins": ["transform-runtime"]
}
将三个文件配置完成后,输出命令
npm i