本文介绍: 如果在你的项目中引入第三方依赖,例如像下面的 import 语句,不会导致 moment 被打包到你的包中——相反,它将是运行时需要的 外部依赖项。如果你的需求是需要代码拆分,或者你有很多静态资源需要处理,再或者你构建的项目需要引入很多 CommonJS 模块的依赖,那应该选择 webpack。如果你想要包含它们(例如,让你的包在浏览器中运行),你可能需要使用。如果你的代码库是基于 ES6 模块的,而且希望你写的代码能够被其他人直接使用(依赖库),你更需要的打包工具可能是 Rollup。
1、使用场景
打包器又许多种,需要在适合的场景下使用适合的打包器,那么什么场景下适合使用 Rollup 呢?
如果你的代码库是基于 ES6 模块的,而且希望你写的代码能够被其他人直接使用(依赖库),你更需要的打包工具可能是 Rollup。
如果你的需求是需要代码拆分,或者你有很多静态资源需要处理,再或者你构建的项目需要引入很多 CommonJS 模块的依赖,那应该选择 webpack 。
2、加载 ES 模块的配置文件
rollup 是 node 命令,默认情况下,会将配置文件(rollup.config.js)当作 commonjs 模块来加载,如果要将配置文件作为 ES 模块来加载,需要进行以下处理:选其一即可
3、兼容使用 commonjs 模块
Rollup 默认只能使用 ES模块 编写代码,如果要使用 commonjs 模块需要使用 @rollup/plugin-commonjs 插件坐兼容处理。
4、TreeShaking(去屑优化)
4.1、对于 ES模块
4.2、对于 commonjs模块
5、引入第三方依赖(引用 node_modules )
6、提取外部依赖
7、使用插件
7.1 rollup-plugin-delete(打包前清空输出目录)
7.2 @rollup/plugin-terser(压缩代码)
7.3 @rollup/plugin-json(允许从 json文件 中导入数据)
7.4 @rollup/plugin-typescript(编译TS代码)
7.4 @rollup/plugin-image(处理组件中引用的图片)
7.5 rollup-plugin-postcss(处理样式 scss less css)
7.6 @sixian/css-url(处理css中的URL)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。