I am trying to create a custom profiler library to load into my SuiteScript 2.0 scripts. Its path is /SuiteScripts/profiler.js and my Suitelet is in /SuiteScripts/suitelet.js
Here how I am trying to load it into my suitelet:
define(['N/ui/serverWidget', 'N/log', 'N/file', './profiler'],
function(serverWidget, log, file, profiler) {
function onRequest(context) {
log.debug('profiler', profiler) // --> logs undefined
I've tried two approaches in profiler.js:
Approach #1:
function Profiler() {
var profileInstance = {};
// add methods to profileInstance
return profileInstance
}
Approach #2:
require([],
function() {
function profiler() {
var profilerInstance = {};
// add methods to profilerInstance
return profilerInstance;
}
return {
profiler: profiler
};
});
In Approach #2 I also added a comment indicating the SuiteScript version and require.config:
/**
*@NApiVersion 2.x
*/
require.config({
shim: {
'profiler': {
exports: 'profiler'
}
},
paths: {
profiler: '/SuiteScripts/Buy Request/profiler.js'
}
});
What am I doing wrong?
You need to use define
instead of require
to build your custom modules. Just change your Approach #2 to call define
instead of require
, and you should be good to go.
I am not sure whether require.config
works with SuiteScript or not. You shouldn't need it specifically for this use case.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With