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

问题描述 投票:0回答:3

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

});
netsuite suitescript
3个回答
6
投票

一般来说,外部库只需是一个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


4
投票

你说:

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

但是从文档来看:

注意 如果您需要在 NetSuite 调试器 中临时调试代码,则必须使用

require()
函数。 NetSuite 调试器 无法单步执行
define()
函数。


0
投票

我可以,在调试器中:

require(["SuiteScripts/moment"], function (moment) {

var __d= moment().format(); 
var x =0; //breakpoint
});

这有效

© www.soinside.com 2019 - 2024. All rights reserved.