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

Node.js中ReferenceError: prompt is not defined问题的替代方案咨询

解决Node.js中无需重复引入prompt-sync的方案

以下是几种不用在每个脚本里重复写const prompt = require("prompt-sync")();的实用方法:

1. 封装自定义工具模块

  • 在项目根目录新建prompt-utils.js文件,写入:
    const prompt = require("prompt-sync")();
    module.exports = prompt;
    
  • 后续任何需要使用prompt的脚本里,只需简短引用:
    const prompt = require('./prompt-utils');
    
    这种方式简洁且不会污染全局,适合个人练习或小型项目。

2. 挂载到全局对象(仅适合小型测试脚本)

可以把prompt挂载到Node.js的global对象上,实现全局可用:

  • 在项目的入口脚本最顶部添加:
    global.prompt = require("prompt-sync")();
    
  • 之后所有同项目的脚本无需任何引入,直接调用prompt()即可。

注意:全局变量容易引发命名冲突,大型项目或多人协作场景强烈不建议使用。

3. ES模块导入映射(Node.js 16.14+)

如果你的项目使用ES模块(通过.mjs后缀或package.json中设置"type": "module"),可以用导入映射简化引用:

  • 项目根目录创建import-map.json:
    {
      "imports": {
        "prompt-sync-short": "prompt-sync"
      }
    }
    
  • 运行脚本时指定导入映射:
    node --experimental-specifier-resolution=node --import-map=import-map.json your-script.mjs
    
  • 脚本中只需写:
    import promptSync from "prompt-sync-short";
    const prompt = promptSync();
    
    这是标准化的ES模块方案,避免了重复写完整包名。

内容的提问来源于stack exchange,提问作者kameswara sai ch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:12:41