builder icon indicating copy to clipboard operation
builder copied to clipboard

common-chunks 有没有这种可能

Open doxiaodong opened this issue 7 years ago • 9 comments

  1. vendor: import 'jQuery'

  2. chunk1: $.ajax

  3. chunk2: $.ajax

  4. fec_common: $ajax

script: fec_common ($ is undefined) script: vendor ($ defined here)

doxiaodong avatar Feb 16 '18 03:02 doxiaodong

@nighca

doxiaodong avatar Feb 16 '18 03:02 doxiaodong

我再测试的过程中发现 有 common-chunk 那个 manifest chunk 就出不来

doxiaodong avatar Feb 16 '18 03:02 doxiaodong

script: fec_common ($ is undefined) script: vendor ($ defined here)

这个不是预期的嘛?

另外有 common chunks 的时候就拿 common chunk 当 manifest 也去预期的吧?现在是有 common chunk 的时候起不到 manifest 的效果?

nighca avatar Feb 18 '18 00:02 nighca

不是呀,我在 vendor 里面引入了 $ , 在其他的模块使用 $

doxiaodong avatar Feb 18 '18 05:02 doxiaodong

意思是其他模块里以全局变量的形式直接用 $?

nighca avatar Feb 18 '18 06:02 nighca

对的。

doxiaodong avatar Feb 19 '18 14:02 doxiaodong

那不是我们这个层面去实现吧,他在 vendor 里

import $ from 'jQuery'
window.$ = $

nighca avatar Feb 20 '18 00:02 nighca

对啊,这段代码辉被打进 vendor 去, 但是 fec__common 会在 vendor 前面被引入

doxiaodong avatar Feb 20 '18 03:02 doxiaodong

按理说,这俩的顺序应该没关系,这些代码是在 module 的 factory 里,factory 本身的执行顺序跟文件本身的引入顺序无关的,只要保证在入口代码最开始去 import vendor,那初始化全局变量的事情就在 common 中 factory 前边执行了。

不过我还不太确定 webpack 会不会对 vendor 或者 manifest entry 干点黑科技,没有黑科技的话应该就是上边的逻辑

nighca avatar Feb 20 '18 03:02 nighca