esbuild build()调用报错:无效选项“watch”问题咨询
关于esbuild中
watch参数报错的问题解答 报错原因
esbuild的watch选项不能直接放到build()方法的配置对象里,build()本身是一次性编译的API,不支持watch参数。你参考的教程用chokidar手动实现监听,是因为原生的esbuild监听功能需要通过单独的context API来实现,而非直接在build配置里配置。
解决方法
有两种可行的处理方式:
使用esbuild原生
contextAPI实现监听
改用context()创建编译上下文,再调用watch()方法开启监听,示例代码:const esbuild = require('esbuild'); async function runWatch() { const ctx = await esbuild.context({ entryPoints: ['src/main.js'], outfile: 'dist/bundle.js', // 其他编译配置 }); await ctx.watch(); console.log('已开启文件监听,修改文件将自动重新编译'); } runWatch();执行
node esbuild.config.js即可启动监听。沿用原教程的chokidar手动监听方案
不要在build()的配置里加watch参数,而是用chokidar监听目标文件/目录,当文件变化时重新调用build()执行编译,示例逻辑:const esbuild = require('esbuild'); const chokidar = require('chokidar'); // 定义编译函数 function build() { return esbuild.build({ entryPoints: ['src/main.js'], outfile: 'dist/bundle.js', // 你的其他编译配置 }); } // 首次编译 build(); // 用chokidar监听文件变化 chokidar.watch('src/**/*').on('change', () => { console.log('文件变化,重新编译...'); build(); });
内容的提问来源于stack exchange,提问作者Nick_K
相关产品推荐
相关产品推荐

