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

Nix Flake安装Node.js 21后npm依赖模块缺失问题求助

解决Nix Flake安装Node.js后npm依赖无法找到的问题

一、修复代码中的明确依赖错误

你的代码中导入了puppeteer,但package.json里声明的是puppeteer-core,这会直接导致puppeteer模块找不到,需二选一修正:

  • 修改代码:将import puppeteer from "puppeteer";改为import puppeteer from "puppeteer-core";
  • 修改package.json:把dependencies中的puppeteer-core替换为puppeteer

二、Nix环境下npm依赖找不到的通用解决方案

方案1:重新安装依赖,确保安装完整

Nix环境下npm可能因缓存或权限问题导致依赖安装不完整,执行以下命令重置安装:

# 删除现有依赖目录和锁文件
rm -rf node_modules package-lock.json
# 重新安装依赖
npm install

安装完成后检查node_modules/dotenv/lib/main.js是否存在,确认路径与错误提示中的一致。

方案2:手动设置NODE_PATH环境变量

Nix的Node.js可能默认未自动识别本地node_modules路径,添加路径后再运行脚本:

# 将当前项目的node_modules加入NODE_PATH
export NODE_PATH=$PWD/node_modules:$NODE_PATH
# 运行你的脚本
node AI.js

方案3:用node2nix适配Nix环境

Nix的纯函数式环境与npm本地依赖管理存在兼容性问题,通过node2nix将npm依赖转换为Nix包可彻底解决:

  1. 安装node2nix工具:
nix-env -iA nixpkgs.node2nix
  1. 在项目根目录生成Nix配置文件:
# 若有package-lock.json,运行此命令
node2nix -l package-lock.json
# 若无锁文件,直接运行
node2nix
  1. 通过Nix构建并运行项目:
nix-build

也可将生成的配置集成到你的Nix Flake中,让Nix统一管理所有依赖。

方案4:使用npm ci严格安装依赖

npm ci会完全按照package-lock.json的版本安装依赖,避免版本不一致问题,更适配Nix的严格环境:

rm -rf node_modules
npm ci

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:54:59