关于vite插件开发中如何访问.ts文件?-灵析社区

D_Y_大师

咨询一个vite插件开发的问题。 首先说一下需求背景,我想做一个插件,能够让使用插件的人能够快速初始化一个比较完善的基于vue的后台脚手架。目前卡在vite插件的config生命周期中。我想定义一个专门的配置文件xxx.config.ts文件。然后在vite插件的config生命周期中访问这个配置文件,让它的配置和vite的配置进行部分合并。但是我发现使用import(process.cwd() + '/xxxx.config.ts')的话会因为.ts文件无法被解析而报错。 无奈之下,尝试使用fs模块去访问对应的配置文件,然后复制出一个一摸一样的.js文件,然后通过improt访问这个.js文件就能行了。但是这样又出现一个问题。在使用这个插件的项目运行打包操作的时候,又会警告[plugin:vite:resolve] Module "fs" has been externalized for browser compatibility。不知道如何解决。 其实想类似unocss这类库一样。unocss.config.ts也能正常读取。请问他们是如何实现的。有大佬能提供一下思路么? 为什么不直接使用xxx.config.js呢。因为ts有较好的错误检测和提示。 期望能够正常读取.ts文件 简单说就是,我写了一个vite插件,但是这个插件支持用户自定义配置内容。然后我想着在插件中调用fs模块去获取用户当前项目的这个配置文件。但是使用我插件的项目在打包的时候会警告。说Module "fs" has been externalized for browser compatibility.请问要如何解决!!

阅读量:122

点赞量:0

问AI
我理解就是提供一份配置文件供用户配置(xxx.config.ts),同时merge一部分vite的配置? 读取配置可以使用"https://github.com/egoist/bundle-require" (https://link.segmentfault.com/?enc=fY8CO92aVlR9vmBD698nAQ%3D%3D.iU4bo188bZyimNqlcIRPUhejUapYeaSrZqnruWT5DAOYI9cya868C9WmRx7XSSUo) 写的话,直接用模板, 之前有处理过这个逻辑,可以参考:"https://github.com/BlizzBolts/docit/blob/feat/core-rewrite/packages/core/node/init/template.ts" (https://link.segmentfault.com/?enc=fv7BCulbMusOt51GC4m%2Fdg%3D%3D.L7akvvUO3aHfGXhZPydr5JQcSzrjrY0Wqdh%2BuqpHwDVy1kya0EDH%2FwJdfgLXIGyRe9KUGEwHgIw1oyln0WE24bgcqf6PKnzV9x%2BJBnvIEIIR88cUV7tl7PBS%2BwU32NSW) 目前配置文件的写主要要注意文件后缀名以及如何让用户更好的写配置 1. 后缀名主要跟运行环境相关,例如有tsconfig.json则使用ts的后缀。或根据用户的package.json判断是esm-only环境还是cjs环境,然后再选择js,cjs,mjs后缀。 2. 使用defineConfig或者json schema