You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

[ERR_PACKAGE_PATH_NOT_EXPORTED]错误含义及DigitalOcean虚拟机运行问题排查

关于[ERR_PACKAGE_PATH_NOT_EXPORTED]错误的解析与修复

问题场景

在DigitalOcean虚拟机中运行http_server.js时触发[ERR_PACKAGE_PATH_NOT_EXPORTED]错误,相关代码及依赖配置如下:

http_server.js代码

// Import required modules
import express from 'express';
import lowdb from "lowdb";
import adapters from "lowdb/adapters";
import { FileSync } from "lowdb/adapters";
import cors from 'cors';
import { faker } from '@faker-js/faker';

 const app = express();
 const adapter = new FileSync('db.json');
 const db = low(adapter);

// allow cross-origin resource sharing (CORS)
app.use(cors());

// data parser - used to parse post data
app.use(express.urlencoded({ extended: false }));
app.use(express.json());

// serve static files from public directory
app.use(express.static('public'));

// init the data store
db.defaults({ users: [] }).write();

// return all users
app.get('/data', function(req, res) {
  res.send(db.get('users').value());
});

// add user
app.post('/add', function(req, res) {
  var user = {
    name: req.body.name,
    dob: req.body.dob,
    email: req.body.email,
    username: req.body.username,
    password: req.body.password,
    phone: req.body.phone,
    streetaddress: req.body.streetaddress,
    citystatezip: req.body.citystatezip,
    latitude: req.body.latitude,
    longitude: req.body.longitude,
    avatar: faker.internet.avatar()
  };
  db.get('users').push(user).write();
  console.log(db.get('users').value());
  res.send(db.get('users').value());
});

// start server
app.listen(3001, function() {
  console.log('Running on port 3001!');
});

package.json依赖配置

{
  "name": "sample",
  "version": "1.0.0",
  "description": "vm app",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "saro",
  "license": "MIT",
  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.18.2",
    "FileSync": "^1.0.1",
    "lowdb": "^6.0.1",
    "lowdb-adapter": "^0.1.3",
    "node-fetch": "^2.6.1"
  }
}

错误本质与具体原因

[ERR_PACKAGE_PATH_NOT_EXPORTED]错误核心是代码尝试导入的模块路径未被目标包的导出配置允许,当前场景下的具体诱因:

  1. lowdb v6导入路径错误:lowdb从v5版本起调整了导出结构,不再支持lowdb/adapters这类子路径导入,你代码中import adapters from "lowdb/adapters";和import { FileSync } from "lowdb/adapters";属于无效路径,这是触发错误的直接原因。

  2. 冗余依赖干扰解析:你额外安装的FileSync和lowdb-adapter并非lowdb官方所需依赖,lowdb v6已内置FileSync适配器,这两个冗余包会干扰Node.js的模块解析逻辑。

修复步骤

  • 修正lowdb导入代码:将http_server.js中lowdb相关导入替换为v6的正确写法:
// 替换原lowdb相关导入
import { low } from 'lowdb';
import { FileSync } from 'lowdb/node';

初始化代码无需修改,保持原逻辑即可。

  • 清理无用依赖:修改package.json的dependencies字段,删除FileSync和lowdb-adapter,同时补充代码中用到但未声明的@faker-js/faker依赖:
"dependencies": {
  "cors": "^2.8.5",
  "express": "^4.18.2",
  "lowdb": "^6.0.1",
  "node-fetch": "^2.6.1",
  "@faker-js/faker": "^8.0.0"
}
  • 重新安装依赖:在项目目录执行命令:
npm install
  • 验证运行:启动服务器确认错误消除:
node http_server.js

内容的提问来源于stack exchange,提问作者Sar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:53:23