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

Nexe构建未包含入口文件(MODULE_NOT_FOUND):移动exe后运行失败

解决Nexe打包exe移动后崩溃的问题

问题根源

你用相对路径../index.js作为Nexe的输入文件,导致打包后的exe没有将入口文件嵌入其中,而是保留了对原始文件路径的引用——在原构建路径下能运行是因为exe能找到原位置的index.js,移动后路径失效就会崩溃。

具体修复方案

  • 改用绝对路径指定入口文件
    借助Node.js的path模块生成绝对路径,确保Nexe能精准定位并打包入口文件,避免相对路径带来的混淆:

    const path = require('path');
    const { compile } = require('nexe')
    const { version } = require('./package.json')
    
    // 生成index.js的绝对路径,__dirname表示当前脚本所在目录
    const inputAppName = path.resolve(__dirname, '../index.js');
    const outputAppName = path.resolve(__dirname, `../build/InfinityDataBank_v${version}`);
    
    compile({
        input: inputAppName,
        output: outputAppName,
        build: true,
        clean: false,
        verbose: true // 开启日志,方便排查打包过程中的问题
    }).then((err) => {
        if (err) throw err
        console.log('success')
    })
    
  • 强制开启打包捆绑模式
    如果你的Nexe版本支持,添加bundle: true配置,强制将所有依赖文件(包括入口文件)嵌入到可执行文件中,彻底摆脱对外部文件的依赖:

    compile({
        input: inputAppName,
        output: outputAppName,
        build: true,
        bundle: true, // 开启捆绑模式
        clean: false,
        verbose: true
    })
    
  • 调整脚本运行路径
    建议直接从项目根目录运行构建脚本,避免嵌套目录的路径干扰。可以把构建脚本移到项目根目录,修改路径为:

    const inputAppName = path.resolve(__dirname, './index.js');
    const outputAppName = path.resolve(__dirname, `./build/InfinityDataBank_v${version}`);
    

    然后在根目录执行node build-script.js即可。

验证步骤

打包完成后,将exe移动到任意空目录运行,如果仍然报错,查看verbose模式下的打包日志,确认Nexe是否提示了文件缺失或路径错误,根据日志进一步调整配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:14:59