如何在NetSuite脚本2.0中使用外部javascript库?
我真的很讨厌netsuite脚本2.0处理日期格式的方式。因此,我想使用Moment.js解析从web服务调用中返回的日期。如何让它在套件脚本2.0中工作 如上所述,我需要将moment.js库添加到NetSuite文件柜中,然后在调试器中使用该库。还要注意,我的脚本位于文件柜->SuiteScripts->库中 但即便如此,我在语法方面还是有问题。因为当我使用调试器时,它现在不会抛出任何错误,但我无法单步执行任何代码,并且日志语句不会打印任何内容如何在NetSuite脚本2.0中使用外部javascript库?,netsuite,suitescript,Netsuite,Suitescript,我真的很讨厌netsuite脚本2.0处理日期格式的方式。因此,我想使用Moment.js解析从web服务调用中返回的日期。如何让它在套件脚本2.0中工作 如上所述,我需要将moment.js库添加到NetSuite文件柜中,然后在调试器中使用该库。还要注意,我的脚本位于文件柜->SuiteScripts->库中 但即便如此,我在语法方面还是有问题。因为当我使用调试器时,它现在不会抛出任何错误,但我无法单步执行任何代码,并且日志语句不会打印任何内容 /** * @NApiVersion 2.x
/** * @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不兼容,则有额外的工作要做
moment
与AMD兼容,因此您只需将moment
源文件放在文件柜中的某个位置,然后按路径将其包含在依赖项中
require(["path/to/moment"], function (moment) {
// use moment as usual
});
下面是一个工作示例,其中我在同级
lib
目录中有moment.min.js
:通常,外部库只需要是一个模块,您可以直接将其包含在代码中。如果您要使用的库与AMD不兼容,则有额外的工作要做
moment
与AMD兼容,因此您只需将moment
源文件放在文件柜中的某个位置,然后按路径将其包含在依赖项中
require(["path/to/moment"], function (moment) {
// use moment as usual
});
下面是一个工作示例,我在同级lib
目录中有moment.min.js
:您说过:
因为当我使用调试器时,它现在不会抛出任何错误,但我无法单步执行任何代码,并且日志语句不会打印任何内容
/** * @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调试器中特别调试代码,则必须使用require()
函数。NetSuite调试器无法单步执行define()
函数
你说:
因为当我使用调试器时,它现在不会抛出任何错误,但我无法单步执行任何代码,并且日志语句不会打印任何内容
/** * @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调试器中特别调试代码,则必须使用require()
函数。NetSuite调试器无法单步执行define()
函数
事实上,我认为它不起作用。因为即使调试器没有抛出任何错误,我也无法单步执行代码。我自己很少使用调试器,但可能会有其他人也可以添加输入。这在UE脚本中起作用<代码>定义(['N/record','N/log','N/ui/serverWidget','./矩.min.js'],函数(记录,日志,ui,矩){}我将在这里回应Eric。我发现调试器的效率通常较低。奇怪的是,您需要路径中的
.js
部分;我从未看到这是必要的,尽管我知道2017年对require
库进行了更改。1.您的环境是否已更新@bknight?不要尝试没有它。事实上,我不知道因为即使调试器没有抛出任何错误,我也不能单步执行代码。我自己很少使用调试器,但可能会有其他人也可以添加输入。这在UE脚本中工作。define(['N/record','N/log','N/ui/serverWidget','./矩.min.js'],function(record,log,ui,矩){}
我将在这里回应Eric。我发现调试器的效率通常较低。奇怪的是,您需要路径中的.js
部分;我从未看到这是必要的,尽管我知道2017年对require
库进行了更改。1.您的环境是否已更新@bknights?请不要尝试没有它。