我真的很讨厌netsuite套件脚本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);
});
答案 0 :(得分:3)
通常,外部库只需要是AMD-formatted模块,您可以直接将其包含在代码中。如果您要使用的库不兼容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-monthly-by-sku/sa-TotalMonthlyBySku.js
答案 1 :(得分:2)
你说:
因为当我使用调试器时,它现在不会抛出任何错误,但我无法单步执行任何代码,并且日志语句不会打印任何内容。
但是来自文档:
注意如果您需要在 NetSuite调试器中临时调试代码,则必须使用
require()
函数。 NetSuite调试器无法跨越define()
功能。