一、nearley.js vite工程化默认不支持
当我们在Vite+React18工程中使用
nearley和引入*.ne文件时候,会发现这样的报错:
二、网上找答案
- 这里找到一个
rollup-plugin-nearley的库 - NPM库链接地址:rollup-plugin-nearley
大致代码如下vite.config.ts:
import { defineConfig } from 'vite';
import nearleyPlugin from 'rollup-plugin-nearley';
export default defineConfig(async ({ mode }) => {
return {
plugins:[nearleyPlugin(), ...otherPlugins],
});
-注意安装rollup-plugin-nearley插件时,可能需要整体重装依赖,否则会因为找不到nearleyjs模块化导致程序运行失败
三、打包
- 打包时发现vite内置插件与该插件冲突
npm run build
- 查看报错断点位置发现,vite插件在执行
buildImportAnalysisPlugin的transform函数前,没有将source参数编译成esmodule模块
-
查看文档发现build时,需要单独在rollup插件中单独执行此插件
-
最终vite.config.ts配置大致代码如下,
注意区分开发环境和生产环境的配置
import { defineConfig } from 'vite';
import nearleyPlugin from 'rollup-plugin-nearley';
export default defineConfig(async ({ mode }) => {
return {
plugins:[mode === 'development' ? nearleyPlugin() : {}, ...otherPlugins],
rollupOptions: {
build: {
plugins: [nearleyPlugin()]
}
});
- 最后打包成功,测试环境代码运行成功。