Failed to resolve entry for package "js-demo-tools". The package may have ......

背景:在我自己开发的npm包,上传到了npm之后,测试的时候使用vite框架进行导入这个包报的错误

json 复制代码
{
  "name": "xxx-demo",
  "version": "1.0.0",
  "description": "this is learn npm package",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "build": "rollup -c"
  },
  "files": [
    "/dist"
  ],
  "keywords": [],
  "author": "",
  "license": "ISC",
  "packageManager": "pnpm@10.14.0",
  "devDependencies": {
    "rollup": "^4.46.4",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-terser": "^7.0.2",
    "rollup-plugin-typescript2": "^0.36.0"
  }
}
  1. main 字段指向错误"main": "index.js" 指向根目录的 index.js,但我的 files 配置只包含 /dist 文件夹,所以发布到 npm 的包中根本没有根目录的 index.js文件。

  2. 缺少 ES 模块入口配置 :虽然你设置了 "type": "module",但没有配置 module 字段或现代的 exports 字段来指定 ES 模块的入口点。

  3. Vite 无法找到正确的入口:Vite 作为现代构建工具,优先查找 ES 模块入口,但你的配置没有提供正确的路径。

推荐 直接使用 exports 字段

json 复制代码
{
  "name": "xxx-demo",
  "version": "1.0.0",
  "description": "this is learn npm package",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "build": "rollup -c"
  },
  "files": [
    "/dist"
  ],
  "exports": {
    ".": {
      "import": "./dist/index.js",
      "require": "./dist/index.cjs"
    }
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "packageManager": "pnpm@10.14.0",
  "devDependencies": {
    "rollup": "^4.46.4",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-terser": "^7.0.2",
    "rollup-plugin-typescript2": "^0.36.0"
  }
}

为什么推荐呢?

  1. 现代标准exports 字段是 Node.js 和现代打包工具的标准
  2. 明确的入口点:清楚地指定了不同模块系统的入口
  3. 更好的兼容性:同时支持 ES 模块和 CommonJS
  4. Vite 友好 :Vite 会优先查找 exports.import 字段
相关推荐
IT_陈寒5 分钟前
JavaScript这5个隐藏技巧,90%的开发者都不知道!
前端·人工智能·后端
明月_清风1 小时前
小程序云函数:从入门到全栈的“降维打击”指南
前端·微信小程序·小程序·云开发
wuhen_n1 小时前
告别 Options API:为什么 Composition API 是逻辑复用的未来?
前端·javascript·vue.js
明月_清风1 小时前
前端异常捕获:从“页面崩了”到“精准定位”的实战架构
前端·javascript·监控
wuhen_n1 小时前
高效的数据解构:用 toRefs 和 toRef 保持响应性
前端·javascript·vue.js
小兵张健12 小时前
价值1000的 AI 工作流:Codex 通用前端协作模式
前端·aigc·ai编程
sunny_12 小时前
面试踩大坑!同一段 Node.js 代码,CJS 和 ESM 的执行顺序居然是反的?!99% 的人都答错了
前端·面试·node.js
拉不动的猪12 小时前
移动端调试工具VConsole初始化时的加载阻塞问题
前端·javascript·微信小程序
ayqy贾杰14 小时前
Agent First Engineering
前端·vue.js·面试
IT_陈寒14 小时前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端