yck-rgb

Results 3 comments of yck-rgb

webpack配置里的resolve:{ alias:{ vue$: "vue/dist/vue.esm.js", } } 改成这样就好了,在之前的issus里看到的解决方案,但不知道为什么要这样改

> > webpack配置里的resolve:{ alias:{ vue$: "vue/dist/vue.esm.js", } }webpack解析器:{别名:{视图$:"vue/dist/vue.esm.js",} } > > 改成这样就好了,在之前的issus里看到的解决方案,但不知道为什么要这样改 > > 引用完整版的vue:[参考官方文档](https://v2.cn.vuejs.org/v2/guide/installation.html#%E5%AF%B9%E4%B8%8D%E5%90%8C%E6%9E%84%E5%BB%BA%E7%89%88%E6%9C%AC%E7%9A%84%E8%A7%A3%E9%87%8A) 问题是为什么要引入完整版,为什么需要在运行时编译模版? 我也不知道为什么

> **cjs和esm混用导致的**。配置alias之后,vue指向了用一个源。如果不配置alias,则按照nodejs默认规则解析,element-ui/lib内使用的vue是`vue/dist/dist/vue.runtime.common.js`,而源码中 `import Vue from vue` 指向了 `vue/dist/vue.runtime.esm.js`,从而使用的不是同一个Vue构造函数。在vite中经过了 `esbuild` 或 `@rollup/plugin-commonjs` 转换,cjs导入变成了esm导入,所以表现正常。结合以上分析,把入口`import Vue from vue` 改`const Vue = require('vue')`之后,即使不配置alias的情况下,同样会表现正常。 大佬很强 不明觉厉