Eri*_*erg 4 javascript module amd netsuite suitescript
我正在尝试创建一个自定义探查器库以加载到我的SuiteScript 2.0脚本中.它的路径是/SuiteScripts/profiler.js,而我的Suitelet在/SuiteScripts/suitelet.js中
这里我是如何尝试将其加载到我的suitelet中的:
define(['N/ui/serverWidget', 'N/log', 'N/file', './profiler'],
function(serverWidget, log, file, profiler) {
function onRequest(context) {
log.debug('profiler', profiler) // --> logs undefined
Run Code Online (Sandbox Code Playgroud)
我在profiler.js中尝试了两种方法:
方法#1:
function Profiler() {
var profileInstance = {};
// add methods to profileInstance
return profileInstance
}
Run Code Online (Sandbox Code Playgroud)
方法#2:
require([],
function() {
function profiler() {
var profilerInstance = {};
// add methods to profilerInstance
return profilerInstance;
}
return {
profiler: profiler
};
});
Run Code Online (Sandbox Code Playgroud)
在方法#2中,我还添加了一条注释,指示SuiteScript版本和require.config:
/**
*@NApiVersion 2.x
*/
require.config({
shim: {
'profiler': {
exports: 'profiler'
}
},
paths: {
profiler: '/SuiteScripts/Buy Request/profiler.js'
}
});
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
您需要使用define而不是require构建自定义模块.只需改变你的方法#2来打电话define而不是require,你应该好好去.
我不确定是否require.config适用于SuiteScript.您不应该专门针对此用例使用它.