webpack4 学习 0-2

111 阅读1分钟

通过 npm 运行 webpack 打包代码

image.png

在 package.json 中的 scripts 中 build 执行 webpack 即可 node_modules 里面的 webpack

webpack 的基本用法

核心概念 entry

单入口:entry 是一个字符串

module.exports = {
     entry: './path/to/my/entry/file.js'
   }

多入口:entry 是一个对象

module.exports = {
  entry: {
    app: './src/app.js',
    adminApp: './src/adminApp.js'
  }
}

核心概念之 Output

Output 用来告诉 webpack 如何将编译后的文件输出到磁盘 (对应打包后到哪个文件下 叫什么名字)

module.exports = {
    entry: {
        app: './src/app.js',
        search: './src/search.js'
    },
    output: {
        filename:'[name].js',
        path: __dirname + '/dist'
    }
}

[name].js 属于占位符 在多个文件打包时需要用占位符来命名;

image.png

核心概念之 Loaders

webpack 开箱即用只支持 JS 和 JSON 两种文件类型,通过 Loaders 去支持其他文件类型并且把它们转化成有效的模块,并且可以添加到依赖图中。

loaders 本身是一个函数,接受源文件作为参数,返回转换的结果。 就是说 css ts sass 包括我们用到的es6+语法等 这些后缀在 webpack 中是不支持解析的 所以我们要借助 loaders 去解析它们,让 webpack 可以识别到。

常见的 loaders

babel-loader 转换 ES6 ES7 等 JS新特性语法
css-loader 支持 .css 文件的加载和解析
less-loader 将 less 文件转换成 css
ts-loader 将  ts 文件转换成 js
file-loader 进行图片,字体等的打包
raw-loader 将文件以字符串的形式导入
thread-loader 多进程打包 js 和 css

Loaders 的用法

const path = require('path');

module.exports = {
    output: {
        filename: 'bundle.js'
    },
    module: {
        rules: [
            { test:/\.txt$/, use:'row-loader' }
        ]
    }
}

test 指定匹配规则
use 指定使用的 loader 名称