正式环境
当你準备好释出你的程式时,可以使用 Parcel 的 production 模式来打包。
parcel build entry.js
最佳化
production 模式中会停用监看模式及模组热替换,同时也会使用压缩器减少所有输出 bundle 的档案大小,在此模式中只会进行一次编译。Parcel 分别使用 terser、 cssnano 及 htmlnano 来压缩 JavaScript、CSS 及 HTML。
使用 production 模式还会将设定环境变数 NODE_ENV
为 production
,某些大型函式库如 React,在此环境变数设定下,会停用开发时使用的除错功能,因此输出的档案会更小,编译速度也随之提高。
若想使用一些开发模式中的除错功能,请先确保 terser 中的 dead_code 选项是启用的(预设为启用),并将开发时的除错程式码放进如下的检查式中:
if (process.env.NODE_ENV === 'development') { // 或 `process.env.NODE_ENV !== 'production'`
// 仅在开发环境中执行,并将在正式编译中被移除
}
档案命名策略
为让你的 CDN 能因效能最佳化而设定更激进的快取规则,大多数 bundle 的档名都会含有杂凑值(这主要透过 bundle 是否该有个好读或好记的档名来决定,通常在 SEO 中才会用到)。
Parcel 用下表列出的方式命名 bundle(进入点永远不会经过杂凑)
Bundle 类型 | 类型 | 内容经过杂凑 |
---|---|---|
任何类型 | 进入点 | ❌ |
JavaScript | <script> | ✅ |
JavaScript | 动态 import | ❌ |
JavaScript | Service worker | ❌ |
HTML | iframe | ❌ |
HTML | 连结锚点 (anchor link) | ❌ |
原始档 (影像及文字档…等等) | Import/Require/... | ✅ |
档案的杂凑则遵循下列命名规则:
<目录名称>-<杂凑值>.<副档名>
跨平台时的地雷
在最佳化 production 环境的编译效能时,Parcel 会使用 physical-cpu-count 来侦测主机 CPU 的可用核心数,并依结果分配任务至各核心。
需特别注意的是,此套件假设你的系统中已经有 这支程式。
使用 CI 时
若你想在你的 CI(持续整合,Continuous Integration)系统中使用 Parcel 的话,则需要将 Parcel 安装为本地套件。
详细步骤说明请参考此文件。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论