我正在尝试创建一个自定义分析器库以加载到我的 SuiteScript 2.0 脚本中。它的路径是/SuiteScripts/profiler.js 而我的 Suitelet 在/SuiteScripts/suitelet.js

在这里,我如何尝试将其加载到我的套件中:

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。对于此用例,您不应该特别需要它。

10-08 18:43