我真的很讨厌 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);
});
一般来说,外部库只需是一个AMD格式模块,您就可以将其直接包含在代码中。如果您要使用的库与 AMD 不兼容,则需要做额外的工作。
moment
与 AMD 兼容,因此您需要做的就是将 moment
源文件放在文件柜中的某个位置,然后通过其路径将其包含在您的依赖项中。
require(["path/to/moment"], function (moment) {
// use moment as usual
});
这是一个工作示例,其中我在同级
moment.min.js
目录中有 lib
: https://gitlab.com/stoicsoftware/netsuite-sku-analytics/blob/master/FileCabinet/SuiteScripts/sku-analytics/total-每月按 sku/sa-TotalMonthlyBySku.js
你说:
因为当我使用调试器时,它现在不会抛出任何错误,但我无法单步执行任何代码,并且日志语句不会打印任何内容。
但是从文档来看:
注意 如果您需要在 NetSuite 调试器 中临时调试代码,则必须使用
函数。 NetSuite 调试器 无法单步执行
require()
函数。
define()