/rollup-startup

a web startup base on rollup.js

Primary LanguageJavaScriptMIT LicenseMIT

rollup-startup

感受了一下打包工具 rollup,跟 fis 以及 gulp 之类的构建工具相比,rollup 只是做好了自己打包的本分工作,实际要构建的话还得依赖 gulp 之类的构建工具,配合 rollup 本身不错的打包功能(因为rollup本身只是一个打包脚本的工具),rollup的优势在于 tree-shaking,按照官方的解释其实就是静态分析脚本,把没有被用到的脚本过滤掉,达到精简打包文件的目的,目前我感觉如果项目中组件数量巨多的话可以考虑一下,或者自己个人的小项目可以用用,否则完全可以用 code-splitting 之类的解决方案,并且目前 rollup 个人感觉还不太成熟,还得观望一段时间。

这个项目是基于 rollup 的脚手架,目前基本实现了基本脚手架所需的功能,还有以下几点没实现:

  1. 多入口打包(用于多页面的情况)
  2. manifest-revision,目前我没看到有相关的插件实现,后续看下rollup怎么实现插件的功能,看下能不能解决
  3. 指定静态资源输出目录,目前跟 dest 目录同级,后续看下是不是得fork插件来修改或者用其他的解决方案,感觉2解决的话3也会跟着解决
  4. html auto inject,其实就是跟 webpack-html-plugin 实现一样的功能,把打包文件路径自动注入进去,目前都得靠显式指定脚本路径,很low,也很难维护(比如文件名带动态hash解决cdn缓存,还是2的问题)

总的来说 tree-shaking 看起来很黑科技很屌,但是不足以成为更换目前构建工具的理由,我还是选择 webpack

使用

初始化

npm install

开发(自带livereload)

npm run dev

发布

npm run build

### 已存在的问题

开发环境下样式都是自动插入到 <head> 的,因为html中已经指定了build之后的外链css,所以会有404请求(我不太想因为这个404请求然后每次dev切prod的时候都得去改html...

现在增加了 html-plugin,类似于 webpack 的 html-webpack-plugin,支持 html 压缩,自动注入脚本,ejs 模板,如果 rollupdest 配置带 [hash] 的话那么会自动替换为输出脚本的 hash 值