我正在尝试创建一个自定义分析器库以加载到我的 SuiteScript 2.0 脚本中。它的路径是/SuiteScripts/profiler.js 而我的 Suitelet 在/SuiteScripts/suitelet.js
在这里,我如何尝试将其加载到我的套件中:
define(['N/ui/serverWidget', 'N/log', 'N/file', './profiler'],
function(serverWidget, log, file, profiler) {
function onRequest(context) {
log.debug('profiler', profiler) // --> logs undefined
我在 profiler.js 中尝试了两种方法:
方法#1:
function Profiler() {
var profileInstance = {};
// add methods to profileInstance
return profileInstance
}
方法#2:
require([],
function() {
function profiler() {
var profilerInstance = {};
// add methods to profilerInstance
return profilerInstance;
}
return {
profiler: profiler
};
});
在方法 #2 中,我还添加了一条注释,指示 SuiteScript 版本和 require.config:
/**
*@NApiVersion 2.x
*/
require.config({
shim: {
'profiler': {
exports: 'profiler'
}
},
paths: {
profiler: '/SuiteScripts/Buy Request/profiler.js'
}
});
我究竟做错了什么?
最佳答案
您需要使用 define
而不是 require
来构建您的自定义模块。只需更改您的方法 #2 以调用 define
而不是 require
,您应该很高兴。
我不确定 require.config
是否适用于 SuiteScript。对于此用例,您不应该特别需要它。