赞
踩
生产环境:只打包不运行本地服务器
npx webpack --config ./config/webpack.prod.js
"build":"npx webpack --config ./config/webpack.prod.js"
- const path =require('path')
- const ESLintPlugin = require('eslint-webpack-plugin');
- const HtmlWebpackPlugin = require('html-webpack-plugin');
- module.exports={
- //入口
- //输出
- //加载器
- //插件
- //模式
- entry:"./src/main.js",//相对路径
- output:{
- //文件的输出路径 __dirname:当前文件的文件夹目录
- path:path.resolve(__dirname,"../dist"),//绝对路径 path是所有文件的输出路径
- //入口文件打包输出的文件名
- filename:"static/js/main.js",
- clean: true,//每次打包前清理上一次打包的内容
- },
- module:{
- rules:[
- //loader的配置
- {
- test: /\.css$/, //只检测.css文件
- use: [//执行顺序从右到左,从下到上
- 'style-loader', //将js中的css通过创建style标签添加到html文件中生效
- 'css-loader'],//将css资源编译成common.js到webpack中
- },
- {
- test: /\.less$/i,
- //loader:"xxx" 只能使用一个loader use可以使用多个
- use: [
- // compiles Less to CSS
- 'style-loader',
- 'css-loader',
- 'less-loader',
- ],
- },
- {
- test: /\.s[ac]ss$/i,
- use: [
- // 将 JS 字符串生成为 style 节点
- 'style-loader',
- // 将 CSS 转化成 CommonJS 模块
- 'css-loader',
- // 将 Sass 编译成 CSS
- 'sass-loader',
- ],
- },
- {
- test: /\.styl$/,
- // loader: 'stylus-loader', // 将 Stylus 文件编译为 CSS
- use: [
- // compiles Less to CSS
- 'style-loader',
- 'css-loader',
- 'stylus-loader',
- ],
-
- },
- {
- test: /\.(png|jpe?g|gif|webp|svg)$/,
- type: 'asset',
- parser: {
- dataUrlCondition: {
- //小于10kb的图片转base64 减少请求数量 但是体积会大一点
- maxSize: 10 * 1024 // 10kb
- }
- },
- generator: {
- filename: 'static/images/[hash:10][ext][query]'
- //图片命名有点长 [hash:10]只取十位
- }
- },{
- test: /\.(ttf|woff2?)$/,
- type: 'asset/resource',
- generator: {
- filename: 'static/fonts/[hash:10][ext][query]'
- }
- },{
- test: /\.(mp3|mp4|avi)$/,
- type: 'asset/resource',
- generator: {
- filename: 'static/media/[hash:10][ext][query]'
- }
- }, {
- test: /\.js$/,
- exclude: /(node_modules)/,//排除node_modules中的js文件
- use: {
- loader: 'babel-loader',
- // options: {
- // presets: ['@babel/preset-env'],
- // },
- },
- }
- ]
- },
- //插件需要引用才能使用
- plugins:[
- //插件的配置
- new ESLintPlugin({
- //检测哪些文件
- context: path.resolve(__dirname,'../src'),
- }),
- new HtmlWebpackPlugin({
- //模版 新的html文件结构与原来一致 会自动引入打包的资源
- template:path.resolve(__dirname,'../public/index.html')
- })
- ],
- //模式
- mode:"production",
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。