hefangshi / fis-postpackager-simple Goto Github PK
View Code? Open in Web Editor NEW用于自动打包页面零散资源和应用打包资源的FIS插件
License: MIT License
用于自动打包页面零散资源和应用打包资源的FIS插件
License: MIT License
需求描述:
未打包的html
<script type="text/javascript" src="../xxx/a.js" groupname="groupa"></script>
<script type="text/javascript" src="../xxx/b.js" groupname="groupa"></script>
<script type="text/javascript" src="../xxx/c.js" groupname="groupb"></script>
<script type="text/javascript" src="../xxx/d.js" groupname="groupb"></script>
<script type="text/javascript" src="../xxx/e.js" groupname="groupc"></script>
合并之后:
<script type="text/javascript" src="../xxx/groupa_a_b_xxx_xx.js" ></script>
<script type="text/javascript" src="../xxx/groupb_c_d_xx_xx.js"></script>
<script type="text/javascript" src="../xxx/groupc_e_xxx_xx.js"></script>
希望扩展2个功能
1、可以根据页面配置的groupname,将相同的合并到一起进行分组
2、合并之后的文件名称最好能包含源文件名称(这个功能感觉需求不是很强)
第一个功能我通过修改源码能实现,但是无法和你现在的功能兼容
环境:fis 3.4.24 全局安装改插件
fis-conf配置:fis.set和fis.config.set均试过
html:
执行命令后,js css位置未发生改变,不知道是那个环节出了问题,麻烦大神帮忙看一下,项目地址
我想次插件增加一个功能,就是autocombine的output文件名,可以定义到跟当前文件有关联的名称。
增加了如下代码:
var arry = [];
for(var key in ret.src){
arry.push(ret.src[key].filename);
}
var subpath = settings.output.replace('${index}', combineCount)
.replace('${name}', arry[0])
.replace('${hash}', fis.util.md5(stable(has).join(','), 5))
+ '.' + fileExt;
配置文件:
fis.config.set('settings.postpackager.simple.output', 'pkg/auto_${name}');
index.html 编译后,得到pkg/auto_index.js。
忘您可以采纳更新,麻烦同时更新到fis-pure中。
最近遇到一个问题,前端在写页面的时候,通常会有一些公用部分,比如header,footer,nav之类的,为了方便维护,把html改成shtml,通过引入公用部分,但是打包插件对于shtml只是压缩和打包资源,并不替换页面上的引用,这个问题有什么解决办法吗?
提示:
[ERROR] unable to load plugin [fis-postpackager-simple]
但是我是安装到了全局的
[email protected] /usr/local/bin/lib/node_modules/fis-postpackager-simple └── [email protected]
我在我用fis打包的那个文件的fis-conf.js里面的代码是
//Step 1. 取消下面的注释开启simple插件,注意需要先进行插件安装 npm install -g fis-postpackager-simple
fis.config.set('modules.postpackager', 'simple');
希望能告诉我一下!谢谢
我的fis版本 v1.10.1,出现这个问题,是版本的过高的原因吗?
如: a.html 引入 [A, B, C, D, E, F, G]等js文件,b.html 引用[B, C, D],然后打包pkg1 : [A,B,C,D,E], pkg2:[B,C,D], pkg:[F, G]。期望的是 a.html引入pkg1, b.html引入pkg2。而当前情况a,b 页面都引入 pkg1, b页面引入文件冗余A,不是最优解。
然后,删除pkg2,开启autoCombine,b.html还是会引入pkg1,冗余文件更多。
我认为:页面中引用的pkg.js 应该包含于页面的所有js文件,多余的文件可以通过autoCombine自动合并,如果不开启,就保留单个文件。
毕竟谁都不希望页面引入冗余文件。
现在grunt的使用也是非常多的,建议弄一个基于grunt的插件
https://github.com/hefangshi/fis-postpackager-simple/blob/master/index.js#L305
有时加个文件所有文件引用都变。
加个根据html路径的md5值可以么?
我现在的项目想把所有css打包成一个文件、所有js打包成一个文件,并且我的项目现在有 : 后台、pc端、微信端、phonegap app 四种界面。。就是每种引入的css都会有写差别。能否都只生成一个css文件呢?
我看你们的postpackager-simple插件生成map.json时去除了重复。。如何让他能不去除重复呢
如题,<script type="text/javascript" charset="utf-8" src="/pkg/auto_combine_xxxxx.js" crossorigin></script>
代码中,md5值是通过合并子文件的文件id来判断的。因此,只改动某一子文件内容,最后的打包文件md5不会改变,这样设计是否不太合理?
用了之后没有效果,也不会参数map表,求助
设置fis-conf.js
fis.config.set('modules.postpackager', 'simple');
fis.config.set('settings.postpackager.simple.autoCombine', true);
执行
fis release -op
完成以后 index.html中的文件引用没有任何改变
这个是为什么?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.