2017-02-03 46 views
1

我真的很讨厌netsuite suite script 2.0处理日期格式的方式。所以,我想使用Moment.js解析从Web服务调用中返回的日期。我如何在套件脚本2.0中使用它?如何在NetSuite Suite Script 2.0中使用外部JavaScript库?

由于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); 

}); 

回答

3

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

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

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

这里的工作的例子,我的一个兄弟lib目录有moment.min.jshttps://gitlab.com/stoicsoftware/netsuite-sku-analytics/blob/master/FileCabinet/SuiteScripts/sku-analytics/total-monthly-by-sku/sa-TotalMonthlyBySku.js

+0

其实我不认为它有效。因为即使调试器不会抛出任何错误,我也无法逐句通过代码。 – pitchblack408

+0

我很少使用调试器,但也许会有其他人也可以添加输入。 – erictgrubaugh

+0

这适用于UE脚本。 'define(['N/record','N/log','N/ui/serverWidget','./moment.min.js'],函数(record,log,ui,moment){}'I'我发现调试器通常效率低下 – bknights

2

你说:

因为当我使用调试器现在不抛出任何错误,但我无法逐句通过任何代码,并且日志语句不会打印任何内容。

但是从文档:

注意:如果你需要临时调试在NetSuite的调试你的代码,你必须使用一个require()功能。 NetSuite调试器不能执行define()函数。

相关问题