为什么ES模块比CommonJS更好?(Why are ES modules better than CommonJS modules?)
ES模块是官方标准,也是JavaScript语言明确的发展方向,而CommonJS模块是一种特殊的传统格式,在ES模块被提出之前做为暂时的解决方案。 ES模块允许进行静态分析,从而实现像 tree-shaking 的优化,并提供诸如循环引用和动态绑定等高级功能。
什么是 ‘tree-shaking’?(What is “tree-shaking?”)
Tree-shaking, 也被称为 “live code inclusion,” 它是清除实际上并没有在给定项目中使用的代码的过程,但是它可以更加高效。词汇来源查看:与清除无用代码相似
我如何在 CommonJS 模块中使用 Rollup ?(How do I use Rollup in Node.js with CommonJS modules?)
Rollup 力图实现 ES 模块的规范,而不一定是 Node.js, npm, require()
, 和 CommonJS 的特性。 因此,加载 CommonJS 模块和使用 Node 模块位置解析逻辑都被实现为可选插件,默认情况下不在 Rollup 内核中。 你只需要执行 npm install
安装 CommonJS 和 node-resolve 插件然后使用 rollup.config.js
配置文件启用他们,那你就完成了所有设置。
Rollup 是用来构建库还是应用程序?(Is Rollup meant for building libraries or applications?)
Rollup 已被许多主流的 JavaScript 库使用,也可用于构建绝大多数应用程序。但是 Rollup 还不支持一些特定的高级功能,尤其是用在构建一些应用程序的时候,特别是代码拆分和运行时态的动态导入 dynamic imports at runtime. 如果你的项目中更需要这些功能,那使用 Webpack可能更符合你的需求。
谁制作了 Rollup 的 Logo。太可爱了!(Who made the Rollup logo? It’s lovely.)
我就知道! 是Julian Lloyd.制作的。