webpack基本配置

111 阅读2分钟

webpack的使用步骤

  • 初始化项目

npm init -y

  • 安装webpack
npm i webpack webpack-cli@3.3.11 -D 
// -D 用于开发环境
// -S 就用于开发也用于生产
  • 配置package.json
{
	"scripts":{
    	"build":"webpack ./要打包的文件路径"
    }
}
  • 打包

npm run build

使用配置文件

在项目的根目录下创建一个文件名为:webpack.config.js

module.exports={
	// 配置入口
    entry:'./src/main.js',
    //配置项:出口
    output:{
    	// 打包后生成的文件名
        filename:'[name].js',
        //打包后文件保存的目录
        path:path.join(__dirname,'dist')
    },
    // 导入vue-loader
    const VueLoaderPlugin=require('vue-loader/lib/plugin')
    // 项目的模式
    mode:'development', //开发模式  production 生产模式
    // 配置文件解析
    resolve:{
    	// alias:别名
        alias:{
        	"@":path.join(__dirname,'src)
        },
        // extensions:可以省略的后缀名
        extensions:[".js",".css",".vue"]
    },
    // 源码映射
    devtool:'inline-source-map',
    //将源码生成到别的文件中:devtool:'source-map'
    
    // loader作用(由于webpack默认是可以打包js文件,但无法打包其他文件,如果想打包其他文件可以借助webpack中loader来进行打包),例:
    // 打包 css的loader
    // npm i style-loader css-loader -D
    // 配置loader
    module:{
    	rules:[
        	{
            	test:/\.css$/,
                use:['style-loader','css-loader']
            },
            // 文件loader
            {
            	test:/\.(png|jpg|gif)$/,
                use:[
                	{
                    	loader:'file-loader',
                        options:{
                        	// 配置输出图片的目录
                            outputPath:'./img'
                        }
                    }
                ]
            },
            // 默认情况webpack是无法打包后缀名为.vue的文件、如果要打包需要借助第三方包:npm i vue-loader vue-template-compiler
            // 配置vue-loader
            {
            	test:/\.vue$/,
                use:['vue-loader']
            }
        ]
    },
    plugins:[
    	// 将vue-loader 作为插件来使用
        new VueLoaderPlugin()
    ]
}

插件

webpack 额外的功能

  • 插件-HtmlWebpackPlugin 作用:在dist目录下自动生成一个html文件
// 下载插件 npm i html-webpack-plugin -S
//配置插件
const HtmlWebpackPlugin=require('html-webpack-plugin')

module.exports={
	plugins:[
    	new HtmlWebpackPlugin({
        	template:'需要打包的HTML文件路径'
        })
    ]
}
  • clean-webpack-plugin 作用:用于清除dist目录
// 下载插件 npm i clean-webpack-plugin -S
//配置插件
const {CleanWebpackPlugin}=require('html-webpack-plugin')

module.exports={
	plugins:[
    	new CleanWebpackPlugin()
    ]
}
  • webpack-dev-server 作用:可以开启一个服务器,具有实时更新的功能
// 下载插件 npm i webpack-dev-server -S
//配置插件
const {CleanWebpackPlugin}=require('html-webpack-plugin')

module.exports={
	devServer:{}
}
//配置指令(package.json)
{
	"scripts":{
    	"serve":"webpack-dev-server --config webpack.config.js --mode development"
    }
}