博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
parcel初体验
阅读量:7143 次
发布时间:2019-06-29

本文共 1505 字,大约阅读时间需要 5 分钟。

最近需要做一个纯静态网站,因工作量比较少,功能又不复杂,上 webpack 觉得太麻烦了,加上早就对 parcel 种草,所以这次决定试用一下号称零配置的 parcel 。

上手

根据很快就安装好了。值得点赞的是,在引入 less 文件的时候,parcel 自动检测到了 less,并自动下载了相关编译插件,稍等片刻即可使用。打包速度挺快,HMR 也是挺好用。

深度使用

路径修改

很快定制需求来了,由于 HTML 文件内的相对路径都自动转换成了 dist 下的绝对路径,而我需要能在不启动服务器的情况下,在本地直接打开 index.html 预览。那么就需要将 HTML 内的资源路径都转换成相对路径。查询文档后发现指定 --public-url 即可。

parcel build src/page/index.html --public-url ./ 复制代码

postcss 插件引入

由于需要支持响应式,所以进入了 rem 单位,为了省事引入了 postcss-pxtorem 插件,能够自动将 px 转换成 rem。

# postcss.config.jsconst pxtorem = require('postcss-pxtorem');module.exports = {    plugins: [pxtorem({ rootValue: 50, propList: ['*'] })],};复制代码

深坑

HMR less 修改后不自动加载

在特定的某个页面下,我修改了 less 文件,parcel 在编译后,浏览器并没有刷新样式。

style appearance 无法加上厂商前缀

正常情况下,appearance: none;会被编译成 -webkit-appearance: none;-moz-appearance: none;appearance: none; ,但是 parcel 并没有转换。一开始我以为是 browserslist 的问题,在查询了 文档后发现,autoprefixer 没问题。所以问题就出在 parcel 上。引入指定 autoprefixer ,覆盖掉 parcel 的 autoprefixer 问题解决。

# postcss.config.jsconst pxtorem = require('postcss-pxtorem');const autoprefixer = require('autoprefixer');module.exports = {    plugins: [autoprefixer, pxtorem({ rootValue: 50, propList: ['*'] })],};复制代码

打包目录反人类

第一次把项目打包出来后看了下目录,惊了个呆,居然所有文件平铺在 dist 目录下。。。一个合理的目录至少要把 css/img/font 等资源分门别类放在对应文件夹下,在深入了解了下之后,发现居然不能改,还发现了另外一个深坑。

dist 下的文件无法取消 hash

作为演示 demo 页面,我对强缓存没有需求,所以我不需要对我的资源进行 hash 重命名,这样也不够美观。翻了一遍 issue 后发现,由于打包目录的原因,同名文件可能出现在dist下,所以 hash 文件名策略不能取消。好消息是 parcel 2 会通过插件的方式支持命名策略。

总结

parcel 作为一个新前端编译工具,带来了零配置的概念,轻度尝鲜很棒。但是作为生产使用的时候,还有不少 bug 和缺点,目前来讲并不推荐作为生产工具使用。

转载地址:http://jszgl.baihongyu.com/

你可能感兴趣的文章
浅析Android线程模型一 --- 转
查看>>
Cocos2d-x PluginX (二)增加新的Plugin
查看>>
python-django开发学习笔记四
查看>>
cocos2d-x开发记录:二,基本概念(导演,场景,层和精灵,场景切换,效果)...
查看>>
Binutils工具集中的一些比较常用的工具
查看>>
jsp里面实现asp.net的Global文件内容。
查看>>
Oracle ROWID
查看>>
WCF服务通信测试
查看>>
dos命令dir查找文件的用法及实例
查看>>
Hadoop守护进程【简--】
查看>>
uboot中gd的定义和使用
查看>>
Tcpdump MySQL Query
查看>>
mac jdbc连接mysql
查看>>
Activity生命周期的学习以及Logcat的使用
查看>>
Environment 常用方法
查看>>
【TYVJ】1338 QQ农场(最大流+最大权闭合图)
查看>>
一个睡五分钟等于六个钟头的方法
查看>>
Material Designer的低版本兼容实现(五)—— ActivityOptionsCompat
查看>>
Mysql监控工具小集合
查看>>
POJ 1654 Area 计算几何
查看>>