LancerComet / vue2-jsx-runtime

JSX runtime for Vue 2.
Apache License 2.0
23 stars 6 forks source link

[Bug确认] @lancercomet/vue2-jsx-runtime作为 loader 参数传递时 Error #6

Closed screetBloom closed 2 years ago

screetBloom commented 2 years ago

背景&问题

当在项目中不使用 .swcrc 配置文件,而是把配置作为 swc-loader 参数传递会报错

Module not found: Error: Can't resolve '@lancercomet/vue2-jsx-runtime/jsx-dev-runtime' in 'vuecli5-swc-jsx/src/components'
image

配置如下

// vue.config.js
module.exports = {
  chainWebpack: (config) => {
    const opts = {
      jsc: {
        parser: {
          syntax: 'ecmascript',
          jsx: true,
          dynamicImport: true,
        },
        transform: {
          react: {
            // "pragma": "h"
            runtime: 'automatic',
            importSource: '@lancercomet/vue2-jsx-runtime',
            throwIfNamespace: false,
          },
        },
      },
    }

    config.module
      .rule('js')
      .uses.clear()
      .end()
      .use('swc-loader')
      .loader('swc-loader')
      .options(opts)
  },
}

如何复现

https://github.com/screetBloom/vuecli5-swc-jsx

正常

把 vue.config.js 中 swc-loader的 .options(opts) 删除,增加 .swcrc 文件

报错

保留 swc-loader的 .options(opts)

LancerComet commented 2 years ago

好的,这两天我抽空看一下

LancerComet commented 2 years ago

抱歉晚了点,0.3.1 已经修复,可以试试看看有没有问题 @screetBloom

screetBloom commented 2 years ago

好的,辛苦了,我等会在在项目中试试,很及时,刚好临近我这边的截止日期😂

因为我个人主要专注工程化相关,Vue 如jsx等语法编译一直没咋系统学习,这个包帮我解决了好几个存量项目落地 SWC 的问题,必须要赞助你一波,求贴个二维码🙏

LancerComet commented 2 years ago

行,那我就不客气了🤣

LancerComet commented 2 years ago

这个我先 Close 了,如果有问题请继续开