webpack基础

安装

npm install -g webpack webpack-cli

快速开始

最新的 webpack 支持零配置使用,默认入口为当前目录下的 src 中的 index.js 文件,默认打包输出的目录为 dist 目录,默认打包模式 modedevelopment
  1. 先建一个文件夹,如 webpack-test
  2. webpack-test 文件下新建一个 src 目录,再src 下新建一个 index.js 文件
  3. 终端进入 webpack-test 目录,运行 webpack
  4. webpack 会在 webpack-test 目录下生成一个 dist 目录。

配置项说明

webpack-test 目录下新建一个 webpack.config.js ,返回的是一个配置对象。html

字段名 可选值 说明
mode "development" \ "production" \ "none" 表示打包类型,为 production 时会压缩代码
entry 字符串 \ 对象 打包入口文件
output 对象 配置打包后文件夹和格式化文件名等

entry 配置入口文件

src 目录下新建 a.jsb.js
// 单一入口
module.exports = {
  entry:'./src/a.js'
}

// 多入口
module.exports = {
  entry:{
    a:'./src/a.js',
    b:'./src/b.js'
  }
}

在多入口时,会在 dist 目录下打包 a.jsb.jswebpack

output

  • filename 打包以后的文件夹名
// 单入口情景
module.exports = {
  entry:'./src/a.js',
  output:{
    filename:'[name].[hash:7].js'
  }
}

// 打包后相似 main.abdfa13.js

// 多入口情景
module.exports = {
  entry:{
    a:'./src/a.js',
    b:'./src/b.js'
  },
  output:{
    filename:'[name].[hash:7].js'
  }
}

// 打包后生成相似 a.abdfa13.js , b.abdfa13.js
在配置文件中,有几个可用的参数,如 hash 当前打包随机字符串, name对应 entry 中的属性名(但单入口默认为 main), ext 对应 loader 中的文件后缀名。
  • path 打包生成的目标文件夹,必须为一个绝对地址
const path = require('path');

module.exports = {
    entry:'./src/a.js',
  output:{
    filename:'[name].[hash:7].js',
    path:path.resolve(__dirname,'./dist')
  }
}
  • publicPath,针对打包后的项目不在服务器的根目录访问,须要加上路径的状况。保证资源访问地址正确。主要体如今页面中引用绝对地址的图片,和 webpackPlugin 注入资源地址的时候。

好比最后项目访问路径为:https://haokur.com/webpack-test/index.html ,则须要配置web

const path = require('path');

module.exports = {
    entry:'./src/a.js',
  output:{
    filename:'[name][hash:7].js',
    path:path.resolve(__dirname,'./dist/webpack-test'),
    publicPath:'/webpack-test/'
  }
}
发布时,则能够将 dist 下面的 webpack-test 目录部署到服务器的根目录下面。

未完待续

相关文章
相关标签/搜索