✨ 生产环境

当需要打包应用程序用于生产环境时,你可以让 Parcel 在生产模式下打包。

parcel build entry.js

带来的优化

由于这将关闭监听模式和模块热替换,所以它只会编译一次。Parcel 还会开启 minifier 来减少输出包文件的大小。Parcel 使用的 minifiers 有针对 JavaScript 的 terser、针对 CSS 的 cssnano 以及针对 HTML 的 htmlnano

启动生产模式后会将环境变量设置为 NODE_ENV=production 。像 React 这种拥有仅针对开发模式的调试功能的大型库,通过设置这个环境变量来禁用调试功能,从而让针对生产环境所打的包更小更快。

文件命名策略

为了对 cdn 设置更好的缓存策略,也为了获得最佳的性能和效率,Parcel 对大多数 bundle 的文件名进行了散列处理(根据 bundle 是否应该有可读/可记忆的名称,主要是为了 SEO)。

Parcel 为 bundle 命名时遵循以下表格。(入口从不 hash)

Bundle 类型 类型 内容散列
Any Entrypoint
JavaScript <script>
JavaScript Dynamic import
JavaScript Service worker
HTML iframe
HTML anchor link
Raw (Images, text files, ...) Import/Require/...

文件的散列遵循以下命名模式:<directory name>-<hash>.<extension>

跨平台陷阱

为了优化构建性能,Parcel 将尝试确定当前电脑上可用的 CPU 数量,以便能够相应地分发构建任务。为此,Parcel 依赖 physical-cpu-count 工具库。

注意,上述工具库假定您的系统中有 lscpu 程序。