执行npm run build报错找不到tablemark的index.js文件如何解决?
问题原因
tablemark 3.0.0及以上版本仅支持ESM规范,不再提供CommonJS格式的dist/index.js入口文件。你当前项目使用CommonJS的require()语法导入该依赖,且npm 6对package.json的exports字段解析存在兼容问题,因此触发模块找不到的报错。
解决方案
方案1:降级tablemark到支持CommonJS的版本(最省事)
直接安装2.x版本的tablemark,该版本兼容CommonJS规范,符合你当前项目的导入方式:
# 先卸载现有版本 npm uninstall tablemark # 安装2.x稳定版 npm install tablemark@2.x --save
安装完成后重新执行npm run build即可。
方案2:适配ESM规范(适合想使用新版本tablemark的场景)
- 在项目根目录的
package.json中新增配置:
{ "type": "module" }
- 将你项目中所有
require('tablemark')的导入语句改为ESM导入语法:
import tablemark from 'tablemark'
调整完成后重新执行构建命令即可。
方案3:清理缓存重装依赖(如果上述方案执行后仍报错)
依次执行以下命令清除残留的错误缓存,完整重装所有依赖:
# 删除node_modules文件夹和锁文件 rm -rf node_modules package-lock.json # Windows系统如果没有rm命令可以手动删除这两个文件/文件夹 # 清理npm缓存 npm cache clean --force # 完整重装依赖 npm install
内容的提问来源于stack exchange,提问作者Avin Indrasoma
相关产品推荐
相关产品推荐

