IndexXuan / vue-cli-plugin-vite

Use vite today, with vue-cli.

Home Page:https://github.com/IndexXuan/vue-cli-plugin-vite

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

无法配置preserveSymlinks 选项

nailfar opened this issue · comments

export default {
  configureWebpack: {
    plugins: plugins,
    resolve: {
      alias: {},
      extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"],
      symlinks: true,
      preserveSymlinks: true,
      dedupe: true,
    },
  },
  pluginOptions: {
    quasar: {
      treeShake: true,
    },
    vite: {
      resolve: {
        alias: {
          vue$: "vue/dist/vue.runtime.esm.js",
          "quasar-variables-styl": "quasar/src/css/variables.styl",
          "~quasar-variables-styl": "quasar/src/css/variables.styl",
          "quasar-styl": "quasar/dist/quasar.styl",
          "quasar-addon-styl": "quasar/src/css/flex-addon.styl",
          "~quasar-addon-styl": "quasar/src/css/flex-addon.styl",
          "@hightlight": "./public/hightlight",
        },
        dedupe: true,
        preserveSymlinks: true,
      },
      vitePluginVue2Options: {
        jsx: true,
      },
      disabledTypeChecker: true,
      disabledLint: true,
    },
  },
};

问题1: pluginOptions.vite.resolve.preserveSymlinks 和 configureWebpack.resolve.preserveSymlinks 设置后都无法起作用;
问题2: 文档指出可以自动处理vue-cli 配置的alias,但是一些ui插件库注入的alias 无法获取
image

symlinks 没支持,你可以看下 vite 是否有等价的,PR Welcome。

alias 我是从 webpack 里读取的,第三方 ui 库怎么会往用户项目里注入 alias,不懂。只支持 vue-cli-plugin 注入的 alias

symlinks 没支持,你可以看下 vite 是否有等价的,PR Welcome。

alias 我是从 webpack 里读取的,第三方 ui 库怎么会往用户项目里注入 alias,不懂。只支持 vue-cli-plugin 注入的 alias

我断点看了下,通过 vue-cli inspect 获取到的alias 和 通过vueConfig.chainWebpack 获取到的alias 不一样,有的第三方库写了个vue-cli-plugin 注入了alias. vue-cli-plugin-vite 和其他的vue-cli-plugin 执行的顺序是否会影响到vue-cli-plugin-vite获取alias 的最终值

我觉得和顺序没关系,注入是一个阶段,resolve 后通过 chainWebpack 拿是下一个阶段,应该是可以拿到的。内置的 alias 也是注入的,和第三方 plugin 应该一样啊

symlinks 没支持,你可以看下 vite 是否有等价的,PR Welcome。

alias 我是从 webpack 里读取的,第三方 ui 库怎么会往用户项目里注入 alias,不懂。只支持 vue-cli-plugin 注入的 alias

vite 有等价的配置可以设置 symlinks,但是vue-cli-plugin-vite 没有提供配置的入口,vue-cli-plugin-vite/config/index.ts 作为vite的启动配置文件,文件里只修改了plugins optimizeDeps,其他设置都没法修改。vue-cli-plugin-vite/config/options 也没有提供修改vite 相关的其他配置。我不知道这样做的最初想法是什么,有什么顾虑吗,我也不好贸然下手改代码。

没有顾虑,就是一一对应精力有限,只弄了常用的。你可以看下怎么专为 vite 的,加配置项目或者直接读取然后设置给 vite

plugin 问题要不你试下在你项目里,把 vite 插件弄到最后一个?

plugin 问题要不你试下在你项目里,把 vite 插件弄到最后一个?

项目启动流程 node ./bin/vite 然后走的是vite 指令 然后读取的vue-cli-plugin-vite/config/index.ts的配置,vue-cli-plugin-其他插件 并不会触发执行,因为插件是vue-cli-service 指令 运行时才会执行,所以插件注入的alias 并不会生效,只有配置在vue.config.js里的alias 可以解析到,这个问题也可以先vue inspect 获取插件注入的alias ,手动添加到vue.config.js配置中。vue-cli 好像有api 提供获取运行时的配置,没有仔细研究过。

https://github.com/IndexXuan/vite-plugin-vue-cli/blob/main/src/index.ts#L82

哦,太久了。想起来了,本插件并不会执行 vue-cli-plugin-*,只能处理用户在 vue.config.js 注入的自定义 alias。第三方 plugin 注入 alias 给用户,不太好吧。暂时没法支持。