如何在 NetSuite Suite Script 2.0 中使用外部 javascript 库?

pit*_*408 1 netsuite suitescript

我真的很讨厌 netsuite suite script 2.0 处理日期格式的方式。因此,我想使用 Moment.js 来解析从 Web 服务调用返回的日期。我如何让它在套件脚本 2.0 中工作?

正如erictgrubaugh所说,我需要将 moment.js 库添加到 NetSuite 文件柜,然后在调试器中使用该库。另请注意,我的脚本位于文件柜 -> SuiteScripts -> 库中

但即便如此,我还是遇到了语法问题。因为当我使用调试器时,它现在不会抛出任何错误,但我无法单步执行任何代码,并且日志语句不会打印任何内容。

/** * @NApiVersion 2.x
 * @NScriptType ScheduledScript
 */

define ([
 'N/log',
 '../Libraries/moment',
 ],

function(log, moment) {





var a = moment('2016-01-01'); 
var b = a.clone().add(1, 'week'); 
log.debug(b);

});
Run Code Online (Sandbox Code Playgroud)

eri*_*ugh 6

一般来说,外部库只需是AMD 格式的模块,您可以将其直接包含在代码中。如果您要使用的库与 AMD 不兼容,则需要做额外的工作。

moment与 AMD 兼容,因此您所需要做的就是将moment源文件放在文件柜中的某个位置,然后通过其路径将其包含在依赖项中。

require(["path/to/moment"], function (moment) {
    // use moment as usual
});
Run Code Online (Sandbox Code Playgroud)

moment.min.js这是一个工作示例,我在同级目录中拥有lib: https: //gitlab.com/stoicsoftware/netsuite-sku-analytics/blob/master/FileCabinet/SuiteScripts/sku-analytics/total-monthly-by-sku/sa- TotalMonthlyBySku.js

  • 这在 UE 脚本中有效。`define(['N/record', 'N/log', 'N/ui/serverWidget', './moment.min.js'], function(record,log,ui,moment){}` I'我会在这里回应埃里克(Eric),我发现调试器通常效率较低。 (2认同)