如何无需在每个JavaScript程序开头编写prompt-sync引入代码?
解决无需在每个Node.js脚本中引入prompt-sync的方案
下面提供几种可行的方案,避免在每个JS文件开头重复编写prompt-sync的引入代码:
方案1:Node.js预加载模块(推荐)
这个方法通过Node.js的--require(缩写-r)参数,在脚本运行前自动加载并初始化prompt-sync,将其挂载到全局对象:
- 确保已在项目中安装prompt-sync:
npm install prompt-sync - 在项目根目录创建一个预加载文件,比如
preload-prompt.js,内容如下:// 把prompt挂载到全局,所有脚本都能直接使用 global.prompt = require("prompt-sync")({ sigint: true }); - 运行脚本时添加预加载参数:
node -r ./preload-prompt.js your-script.js - (可选)把预加载命令写入
package.json的scripts,简化操作:
之后只需执行{ "scripts": { "start": "node -r ./preload-prompt.js" } }npm run start your-script.js即可运行脚本。
方案2:创建自定义简化模块
如果不想用全局变量,可通过自定义模块简化引入步骤:
- 在项目中创建一个工具模块,比如
utils/prompt.js:module.exports = require("prompt-sync")({ sigint: true }); - 在需要使用prompt的脚本中,只需引入这个简化模块:
相比原代码更简洁,还能统一管理prompt的配置(比如修改sigint参数只需改一处)。const prompt = require('./utils/prompt');
方案3:全局安装+全局变量(不推荐)
此方法依赖全局模块,可能存在版本冲突问题,仅适合个人测试场景:
- 全局安装prompt-sync:
npm install -g prompt-sync - 创建预加载文件(同方案1的
preload-prompt.js),运行时指定全局模块路径或配置NODE_PATH环境变量指向全局模块目录(Windows为%APPDATA%\npm\node_modules,Linux/macOS为/usr/local/lib/node_modules),再用-r参数加载预加载文件。
注意事项
- 使用全局变量(方案1、3)时,要注意避免变量名冲突,其他模块可能也会使用
prompt变量。 - 推荐使用方案1或方案2,前者适合快速运行脚本,后者适合项目化开发的场景。
内容的提问来源于stack exchange,提问作者user16904341
相关产品推荐
相关产品推荐

