js模块的问题

86 阅读1分钟

最近在用pm2部署前端项目时,遇到了一个js模块相关的问题。
项目是用的React + TS + Vite,配置pm2的配置文件ecosystem.config.js后,命令行执行 pm2 deploy ecosystem.config.js production setup后报了如下错误:

1373aec0fae1c193bb33aee3142142e.png

错误原因说的很清楚了,就是该文件被视作ES模块,因为package.json文件里设置了type字段值为module。根本原因是配置文件里使用了commonJS类型的引用方式。 解决方法有两个:

  • js后缀文件都改名为cjs后缀,但pm2配置文件只认js后缀,所以这个方法不可取
  • package.json里的type字段改为commonjs,就可以在当前工程环境下添加js文件了。

如此明显的提示,我花了2个下午的时间解决,归咎了一下原因,相比自己技术菜,倒不如说是出于对bug的恐惧心理,找解决方案都是看个大概,都没细看。上面图片的错误提示,还是今天沉下心来好好读了一遍才发现的。
技术人还是得沉得住气,没有克服不了的困难。