在SuitScript 2.0中创建自定义库模块?

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)

我究竟做错了什么?

eri*_*ugh 7

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

我不确定是否require.config适用于SuiteScript.您不应该专门针对此用例使用它.