2016-06-08 50 views
2

我想创建一个自定义的剖析器库加载到我的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' 
} 
}); 

我在做什么错?

+0

你会得到什么样的错误?你有没有试过插入一些日志记录机制来测试它是否实际加载正确?也就是说,在探查器本身内... – TonyH

+0

log.debug('typeof profiler',typeof探查器)// - >还记录未定义。 我需要得到一个函数,或一个对象,作为一个起点加载。我一定不能正确地接线。 –

回答

4

您需要使用define而不是require来构建您的自定义模块。只是改变你的方法#2拨打define而不是require,你应该很好去。

我不确定require.config是否适用于SuiteScript。你不应该专门为这个用例需要它。

+1

谢谢!我会upvote你的答案,但我太多noob! –

相关问题