fex-team / fis3-postpackager-loader

静态资源前端加载器
BSD 2-Clause "Simplified" License
82 stars 38 forks source link

使用 useSameNameRequire css依赖关系不准确 #61

Closed maxming2333 closed 8 years ago

maxming2333 commented 8 years ago

如图:

Alt text

html 同名依赖 qmqz目录下的 css 和 js

其中 qmqz.js require 了 tpl4.js

因为在同名依赖滴作用下 tpl4.js 依赖了 tpl4.css

依赖链 :

qmqz.html -> qmqz.js -> tpl4.js -> tpl4.scss
qmqz.html -> qmqz.js -> qmqz.scss

按道理

load 合并滴时候

tpl4.scss 应该是在 qmqz.scss 之前滴,但是打包出来滴效果却是

qmqz.scss 第一 tpl4.scss 第二

这样就导致 qmqz.scss 不能覆盖 tpl4.scss 里面的样式

2betop commented 8 years ago

求来个仓库,方便修复问题。

maxming2333 commented 8 years ago

git地址 : https://github.com/maxming2333/fis3-postpackager-loader-test

maxming2333 commented 8 years ago

fis3 release

可以在浏览器下看

http://127.0.0.1:5000/tpl/act/xzzt/tpl4/qmqz/qmqz.html

引用的 css

maxming2333 commented 8 years ago

hello 有进展么?

2betop commented 8 years ago

有啊,同名依赖还有包含 qmqz.html => qmqz.scss

所以 qmqz.scss 再前面,你把 html 的同名依赖关了就能让 qmqz 再后面。

比如你把

// Global start

fis.match('/src/**', {
  useSameNameRequire: true
});

改成

// Global start

fis.match('/src/**.js', {
  useSameNameRequire: true
});
maxming2333 commented 8 years ago

好滴

maxming2333 commented 8 years ago

重新讨论一下

qmqz.html -> qmqz.scss

这种依赖,可以在打包的时候设置为最后一个打包么,

因为一般项目都是自己页面单独的css是最后一个

即:

如果遇到 qmqz.html -> qmqz.scss 这种依赖,先看看有没有其他css依赖,然后先合并其他css,最后再合并 qmqz.scss

maxming2333 commented 8 years ago

hello~