Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望在打包过程中可以配置js/css的进一步压缩 #39

Open
renxia opened this issue Jan 18, 2016 · 4 comments
Open

希望在打包过程中可以配置js/css的进一步压缩 #39

renxia opened this issue Jan 18, 2016 · 4 comments

Comments

@renxia
Copy link

renxia commented Jan 18, 2016

该需求基于如下两个问题:

1.打包处理流程中,对于文件没有作处理,那么有些组件使用的是 .min 类型,这会使得一些注释无法去掉;此外,打包流程也会增加文件路径的注释引用。

关于这部分,是否可以开启一个参数,使用者希望得到更高的压缩率/混淆目时,可以通过参数配置。

2.在单文件处理流程中可以使用 uglify-js 等插件进行压缩。但在项目打包时动态选择子目录的情况下,一些第三方lib组件可能并没有引用,但每次打包也都会经过单文件处理流程,这就使得打包时间变得非常长(主项目中的子项目目录较多,第三方库引用也达到了30+)。

那么如果通过配置打包流程,只对 packTo 和 allinone 的结果进行压缩,就可以避免不必要的压缩耗时,也可以得到更好的压缩率。

当然该需求在打包后处理阶段或者 deploy 阶段单独开发一个插件来实现也是可以的。

@2betop
Copy link
Contributor

2betop commented Jan 18, 2016

  1. 你说的注释是代码里面本来就有的 /*!xxx 格式的注释,还是说 loader allInOne 打包的时候给添加上的? 如果是第一种,我觉得 uglify 插件中,肯定有配置项去掉这部分注释,如果是第二种, 目前 loader 确实没有配置项 https://github.com/fex-team/fis3-postpackager-loader/blob/master/lib/pack.js#L127 应该像这个插件一样添加一个 添加 useTrack 支持 fis3-packager-map#6
  2. 你说的问题其实是因为你没有开启按需编译造成的编译浪费,开启按需编译即可。如下,指定编译入口文件是 *.html 然后fis编译时分析其引用的资源,深入分析。
fis.set('project.files', ['*.html']);

@renxia
Copy link
Author

renxia commented Jan 18, 2016

第一个问题是对于 min 希望不经过 uglify 处理,只去除注释。

关于第二个问题
你所说的“按需编译”怎么理解其逻辑,对于 js、css 的压缩处理是在单文件处理流程中进行的,那么首先要 match 对应的文件。
你的意思是不是可以这样理解,如果不显示的配置 match 这些文件,只设置入口,那么 fis 会自动分析加入 release 队列中?

但参考 fis release 流程原理,好像这种引用也是在打包流程中通过 loader 插件才会做的静态分析吧

@2betop
Copy link
Contributor

2betop commented Jan 18, 2016

文件参不参与单文件编译跟 match 无关,而是跟 project.files 这个配置项有关。默认 project.fies*,这样的话,你的项目目录下面的所有代码几乎都会参与编译,压缩,然后再packager阶段合并。实际上有很多代码是没用到的,也会参与编译,最耗时的是压缩。

所以我的建议是开启按需编译,把默认的 * 改成 *.html 这样,还是继续单文件编译期去做压缩,但是只会是用到了的文件才参与。然后到了 packager 阶段,只需要做简单拼接就够了。

我知道你希望的是,单文件编译期不压缩,在 loader 合并之后再对合并后的资源做一次压缩。其实我对这个需求的解读就是不希望做过多的没用文件的压缩。换成按需编译后,还是原来的编译流程,但是解决编译无用文件的问题。效果是差不多的。

@renxia
Copy link
Author

renxia commented Jan 18, 2016

是的,我是觉得在最后做统一压缩会最省时。
你说的“按需编译”我之前没有注意到,应该算是比较细节的了,如果确实如你所说那么在配置上应该要简单多了。
我先测试一下,非常的感谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants