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 - 脚本中只需写:
这是标准化的ES模块方案,避免了重复写完整包名。import promptSync from "prompt-sync-short"; const prompt = promptSync();
内容的提问来源于stack exchange,提问作者kameswara sai ch
相关产品推荐
相关产品推荐

