wp2vite icon indicating copy to clipboard operation
wp2vite copied to clipboard

转换后启动项目报错[plugin:vite-plugin-importer] [BABEL] unknown: Preset /* your preset */ requires a filename to be set when babel is called directly

Open Pehfan opened this issue 4 years ago • 8 comments

image

Pehfan avatar Aug 31 '21 06:08 Pehfan

项目目录截图看下,辛苦再提供下vite.config.js的内容

dravenww avatar Sep 01 '21 02:09 dravenww

项目目录截图看下,辛苦再提供下vite.config.js的内容

目录结构如下 微信截图_20210901105301 image

vite.config.js 如下 删除usePluginImport这个错误消失,但是会有引入其它文件的报错 /* eslint-disable */ import legacyPlugin from '@vitejs/plugin-legacy'; import usePluginImport from 'vite-plugin-importer'; import { viteMockServe } from 'vite-plugin-mock'; import * as path from 'path'; import { createVuePlugin } from 'vite-plugin-vue2'; // @see https://cn.vitejs.dev/config/ export default ({ command, mode }) => { let rollupOptions = {};

let optimizeDeps = {};

let alias = { '@': path.resolve(__dirname, '.\src'), 'vue$': 'vue/dist/vue.esm.js', }

let proxy = {}

let define = { 'process.env.NODE_ENV': '"development"', }

let esbuild = {}

return { base: './', // index.html文件所在位置 root: './', // js导入的资源路径,src resolve: { alias, }, define: define, server: { // 代理 proxy, }, build: { target: 'es2015', minify: 'terser', // 是否进行压缩,boolean | 'terser' | 'esbuild',默认使用terser manifest: false, // 是否产出maifest.json sourcemap: false, // 是否产出soucemap.json outDir: 'build', // 产出目录 rollupOptions, }, esbuild, optimizeDeps, plugins: [ legacyPlugin({ targets: ['Android > 39', 'Chrome >= 60', 'Safari >= 10.1', 'iOS >= 10.3', 'Firefox >= 54', 'Edge >= 15'], }), usePluginImport({ libraryName: " ", // todo please input your babel-plugin-import config libraryDirectory: " ", style: "css", }), viteMockServe({ mockPath: 'mock', localEnabled: command === 'serve', }), createVuePlugin(), ], css: { preprocessorOptions: { less: { // 支持内联 JavaScript javascriptEnabled: true, } } }, } }

Pehfan avatar Sep 01 '21 02:09 Pehfan

之所以会有vite-plugin-importer这个插件的引入,是因为在你的项目中有babel-plugin-import,这是与之对应的vite的插件,需要手动把所对应的配置填充到usePluginImport内,有一个TODO需要去改一下,改完后再试下。 另外,如果你的项目中全部都是require的方式引入资源,需要去改成esmodule的方式(import)才可以成功使用vite。

dravenww avatar Sep 02 '21 01:09 dravenww

把`babel-plugin-import的配置填充到usePluginImport了,但是这个报错还是存在。

// vite.config.js 中
plugins: [
      vitePluginReactJsSupport([], { jsxInject: false }),
      legacyPlugin({
        targets: ['Android > 39', 'Chrome >= 60', 'Safari >= 10.1', 'iOS >= 10.3', 'Firefox >= 54', 'Edge >= 15'],
      }),
      usePluginImport(
        {
          libraryName: "antd", // todo please input your babel-plugin-import config
          libraryDirectory: "es",
          style: true,
        }
      ),
...// 其他plugin
    ],

octopustail avatar Sep 03 '21 08:09 octopustail

项目中的引用是require的方式,还是import的方式呢?

dravenww avatar Nov 10 '21 02:11 dravenww

我也是一样的问题有人解决了吗

oceanchiu avatar Apr 03 '22 08:04 oceanchiu

我用的 ant-design-vue-pro 也是一样的报错,

clddup avatar Feb 13 '23 03:02 clddup

邮件已收到,感谢!

guchengnan avatar Feb 13 '23 03:02 guchengnan