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

如何让Postman包脚本全局可用?求pm.require全局的更简洁方案

如何让Postman自定义工具库全局可用(无需重复导入)

我想做一个工具包,不用在每个请求脚本里都导入就能直接用。现在已经有了一个实现方法,但总觉得太啰嗦——有没有更简洁的方式,能让通过pm.require加载的模块直接全局可用?

我当前的实现

包库代码

function HelloWorld() {
    console.log('Hello World');
}

function GoodMorning(name) {
    return `Good morning ${name}`;
}

module.exports = { 
    HelloWorld, 
    GoodMorning
}

集合级脚本(手动封装版)

const myUtils = pm.require('@myteam/utils');
// 手动把每个函数包装到全局对象里,这样每个请求脚本就不用再导入了
utils = {
    HelloWorld: function() {
        myUtils.HelloWorld();
    },
    GoodMorning: function(name) {
        console.log(myUtils.GoodMorning(name));
    }
};

更简洁的优化方案

根本不用手动逐个封装函数,直接把加载后的模块对象挂载到全局就行,两种简单方式任选:

方式1:直接赋值给全局变量

集合级脚本里只需要一行代码:

global.utils = pm.require('@myteam/utils');

之后在任意请求脚本里直接调用:

utils.HelloWorld(); // 输出 Hello World
console.log(utils.GoodMorning("Alice")); // 输出 Good morning Alice

方式2:挂载到Postman全局pm对象(避免变量冲突)

如果担心全局变量重名,可以把工具函数合并到pm对象里:

Object.assign(pm, pm.require('@myteam/utils'));

调用方式就变成:

pm.HelloWorld();
console.log(pm.GoodMorning("Bob"));

小提醒

  • Postman默认会先执行集合级脚本,再执行请求脚本,所以不用担心加载顺序问题
  • 全局变量尽量起个辨识度高的名字(比如myTeamUtils),避免和其他脚本的变量撞名
  • 工具库更新后,只要重新运行集合级脚本就能加载新内容,不用改请求脚本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:52:44