在SuitScript 2.0中创建一个自定义库模块?
问题描述:
我想创建一个自定义的剖析器库加载到我的SuiteScript 2.0脚本。其路径是/SuiteScripts/profiler.js和我Suitelet是/SuiteScripts/suitelet.js在SuitScript 2.0中创建一个自定义库模块?
在这里,我如何我试图将其加载到我suitelet:
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。你不应该专门为这个用例需要它。
+1
谢谢!我会upvote你的答案,但我太多noob! –
你会得到什么样的错误?你有没有试过插入一些日志记录机制来测试它是否实际加载正确?也就是说,在探查器本身内... – TonyH
log.debug('typeof profiler',typeof探查器)// - >还记录未定义。 我需要得到一个函数,或一个对象,作为一个起点加载。我一定不能正确地接线。 –