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

时间:2017-02-03 07:48:45

标签: netsuite suitescript

我真的很讨厌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);

});

2 个答案:

答案 0 :(得分:3)

通常,外部库只需要是AMD-formatted模块,您可以直接将其包含在代码中。如果您要使用的库不兼容AMD,则还有额外的工作要做。

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

require(["path/to/moment"], function (moment) {
    // use moment as usual
});

这是一个工作示例,我在moment.min.js兄弟目录中libhttps://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()功能。