a .
注意点:index.js就是需要打包的文件打包之后的文件会放到dist目录中, 名称叫做main.js
b .
这句指令的含义是: 利用webpack将index.js和它依赖的模块打包到一个文件中
其实在webpack指令中除了可以通过命令行的方式告诉webpack需要打包哪个文件以外,
还可以通过配置文件的方式告诉webpack需要打包哪个文件
这句指令的含义是将webpack将index.js和他依赖的模块打包到一个文件中
其实webpack打包指令除了可以通知要打包哪些文件,还可以通过配置
2.2webpack常见配置
刚才是输入npx webpack index.js 那么现在就可以输入npx webpack了
如果想要使用其他指令,可以直接修改的 package.json 的scirpts
以后再打包的时候,就可以直接使用npm run test了;
当然,还可以看下devtool的取值,他生成的sourcemap映射表,对打包后的包的大小和打包速度有很大影响
表示从哪个文件为入口起点开始打包,分析构建依赖图,可以定义单个或者多个,对应的,可以构建出单页或者多页应用,一般会跟 output 成对出现。
表示打包后的资源输出到哪里,以及命名规则,对应 entry 多文件入口的情况写法,如果要支持 CJS 、 UMD 、 ESM 、 html 页面直接引入,都是在这里通过配置实现的。
这里的 [name].js 表示出口的文件名和多入口的文件名保持一致,这样的话可以做到不同的页面加载不同的 js 页面。
因为 webpack 只能处理 js / json 资源,不能处理类似 css / img 等其他资源,所以需要通过 loader 支持来处理其他资源,以下是常用的 loader :
Plugins 可以用于执行范围更广的任务,插件的范围包括,从打包优化到压缩,到定义环境变量等,以下是常用的 Plugins :
指的是 webpack 使用相应模式的配置,它有以下两个选项:
(1) development ,开发环境,它会默认开启以下选项:
(2) production ,生产环境,它会默认开启以下选项:
webpack5大特点
Webpack 有两种组织模块依赖的方式,同步(默认)和异步(高级)。异步依赖作为分割点,形成一个新的块。在优化了依赖树后,每一个异步区块都作为一个文件被打包。
Webpack 本身只能处理原生的 JavaScript 模块,但是 loader 转换器可以将各种类型的资源转换成 JavaScript 模块。这样,任何资源都可以成为 Webpack 可以处理的模块。
Webpack 有一个智能解析器,几乎可以处理任何第三方库,无论它们的模块形式是 CommonJS、 AMD 还是普通的 JS 文件。甚至在加载依赖的时候,允许使用动态表达式 require("./templates/" + name + ".jade")。
Webpack 还有一个功能丰富的插件系统。大多数内容功能都是基于这个插件系统运行的,还可以开发和使用开源的 Webpack 插件,来满足各式各样的需求。
Webpack 使用异步 I/O (NodeJs)和多级“缓存”提高运行效率,这使得 Webpack 能够以令人难以置信的速度快速增量编译。