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

关于使用fis3合并压缩打包等问题 #184

Open
eugeneCN opened this issue Oct 15, 2017 · 4 comments
Open

关于使用fis3合并压缩打包等问题 #184

eugeneCN opened this issue Oct 15, 2017 · 4 comments

Comments

@eugeneCN
Copy link

先贴一下我的fis3-conf.js配置。

if (fis.IS_FIS3) {

  fis.set('namespace', 'home');

  // ------utils配置模块化------
  fis.match('utils/**', {
    isMod: true
  });

  fis.match('/client/widget/.{js,es}', {
    packTo: 'widget.js'
  });

  fis.match('/client/widget/**.{css,less}', {
    packTo: 'widget.css'
  });

  // ------配置debug------
  fis.media('debug').match('{client,server}/**', {
    deploy: fis.plugin('http-push', {
      receiver: 'http://127.0.0.1:8085/yog/upload',
      to: '/'
    })
  })

}

在app执行 yog2 release debug --fis3后代码会部署到yog服务里。

问题来了 ...

image

为什么蓝色区域require的资源并不是已经加过hash压缩的资源呢??
该如何解决 ..
@hefangshi

@zhiqiang21
Copy link

zhiqiang21 commented Oct 15, 2017

yog2中加载非模块化的静态文件资源有两种方式

  1. <script>标签的方式
  2. 就是你是用的方式。

你写的方式并不会在模板里显示hash戳,你去yog/conf/fis目录下会有个xxx.json的文件,那个文件的内容就是require方式加载文件和实际文件的映射关系

比如我这种,你可以编译下,然后在浏览器里面运行下看是否加了hash戳

@eugeneCN
Copy link
Author

eugeneCN commented Oct 15, 2017

感谢,确实是这样,解决了我的疑问。

还有个关于打包的问题... 先看一张页面需要的脚本文件.. 如下图

image

  1. mod.js --- 不解释
  2. jquery.js --- 不解释
  3. footer.js --- 该页面的footer组件下的js
  4. swiper.js --- 不解释
  5. util.js --- 全局公共方法
  6. index.js --- 该页面js

有个想法 .. 是否可以将已引用的js分别打包成一个文件。

比如 jquery、swiper合并成一个文件,index、footer合并成一个文件。
之前用过 fis3-packager-deps-pack 此插件,但是有一个问题,多个jq这样的库打包成一个lib.js文件,所有页面都会引入lib.js,我登录页面不需要swiper这个库,但lib.js已经将swiper合并起来了,那打包的意义就不理解了呢,多次请求好,还的载入一个大的文件合适??

还有其他页面,也是如此。。只打包引用到的文件,yog2是否可以做到。

@zhiqiang21
Copy link

zhiqiang21 commented Oct 16, 2017

其实感觉没有必要哈,如果是lib库我觉得打包成一个,在第一次加载的时候就缓存了,以后的页面使用这个文件使用的也是缓存的文件。但是如果你非得想按照你的想法做的话fis3-packager-deps-pack这个插件是支持语法 的可以在打包的时候排除某些文件。你可以看下这个插件的文档。

@eugeneCN
Copy link
Author

谢谢 @zhiqiang21 redis问题

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