webpack

作者: 蜗牛和曼巴 | 来源:发表于2020-02-21 23:08 被阅读0次

webpack的安装
为了防止全局安装出现的版本冲突,我们一般都把webpack安装在本地项目中
yarn add webpack webpack-cli -D npm i webpack webpack-cli --save-dev

从npm5.2版本后,提供了一个命令:npx,基于这个命令可以执行本地安装的模块
$npx webpack 基于npx执行了webpack命令,而这个命令就是实现打包部署的
-找到node_modules/.bin
-要求我们得有webpack.cmd文件
-执行webpack.cmd
也可以从package.json中配置可执行的脚本

'scripts':{
  'build':'webpack',
  ....
}

$ npm run build OR yarn build

在webpack.config.js这个文件中设置我们自定义的打包规则
1.所有的规则都写在module.exports={}中

module.exports={
//配置优化规则
optimization:{
  //压缩优化
  minimizer:[
       
    ]
}
 mode:''  //配置环境 production development
  entry:'./src/index.js'  //入口文件,从哪个文件开始打包
  //出口
  output:{
  filename:'bundle.min.js'  //输出的文件名
  //让每一次生成的文件名都带着HASH值
  filename:'bundle.min.[hash].js'  //输出的文件名
  path:''   //输出的目录必须是绝对路径
},
  //关于webpack-dev-server的一些配置
 devServer:{
   port:3000, //创建服务指定的端口号
   progress:true //显示打包编译的进度
  contentBase:'./build'  //指定当前服务处理资源的目录
  open:true  //编译完会自动打开浏览器
},
 //使用插件(数组)
  plugins:[
    new HtmlWwbpackPlugin({
       //不指定模板会按照默认模板创建一个HTMl页面,当然真实项目中一般都市把自己写好的HTML进行编译
       template:'./src/index.html',
      //输出的文件名
      filename:'index.html',
      //让我们引入JS后面加上HASH(清除缓存),但是真实项目中我们一般都市每一次编译生成不同的JS文件引入
     hash:true,
     //控制压缩
     minify:{
     
}
})
],
  //使用css加载器loader处理规则
  module:{
   rules:[
  {
   test:/\.css$/,  //基于正则匹配处理哪些文件
  //控制使用的LOADER(有顺序的:从右到左执行,先执行css再style)
   use:[
    'style-loader',  //把编译好的css插入到页面的HEAD中
    'css-loader',  //编译@import/url()这种语法的
],  //控制使用的加载器
   },
   {
    test:/\.js$/i,
    // 编译JS
    use:[{
     loader:'babel-loader',
     options:{
      //基于BABEL的语法解析包(ES6编译ES5)
       presets:[
        '@babel/preset-env'
     ]
     }
    }]
  }
]
}
}

图片

{
  test:/\.(png|jpg|jpeg)$/i,
  use:['file-loader']
},
{
  test:/\.(html|htm|xml)$/i,
  use:['html-withimg-loader']
}

相关文章

网友评论

      本文标题:webpack

      本文链接:https://www.haomeiwen.com/subject/yiohqhtx.html