Мы пытаемся заставить core-js@3 работать должным образом в среде исполнения SuiteScript 2.0 на стороне сервера для всех его (очень приятно иметь) многократных заполнений ECMAScript 6.
В комплекте версия библиотеки, кажется, работает нормально. Например, это нормально работает в отладчике сценариев:
/**
* @NApiVersion 2.x
*/
require(['/SuiteScripts/core'],
function() {
var test = Array.from(new Set([1, 2, 3, 2, 1]));
}
);
(где /SuiteScripts/core.js - это объединенная версия версии 3.6.4 библиотеки .)
Однако мы бы предпочли использовать стандартную (не связанную) версию библиотеки, потому что это позволит нам выборочно загружать только те функции, которые нам нужны. Мы загрузили версию 3.6.4 библиотеки в нашу File Cab inet и затем попытались загрузить ее:
/**
* @NApiVersion 2.x
*/
require(['/SuiteScripts/core-js'],
function() {
var test = Array.from(new Set([1, 2, 3, 2, 1]));
}
);
Это приводит к следующая ошибка:
{"type":"error.SuiteScriptModuleLoaderError","name":"MODULE_DOES_NOT_EXIST","message":"Module does not exist: /SuiteScripts/core-js.js","stack":["<anonymous>(adhoc$-1$debugger.user:4)"]}
Похоже, что Require JS делает что-то странное в среде SuiteScript 2.0, поскольку обычно обращение к каталогу из require()
приводит к тому, что Require JS ищет index.js
в каталоге? Если мы обращаемся непосредственно к файлу index.js
в каталоге, то мы просто получаем другую ошибку, когда файл index.js
пытается require('./es')
подкаталог es
:
/**
* @NApiVersion 2.x
*/
require(['/SuiteScripts/core-js/index'],
function() {
var test = Array.from(new Set([1, 2, 3, 2, 1]));
}
);
Сообщение об ошибке:
{"type":"error.SuiteScriptModuleLoaderError","name":"{stack=[Ljava.lang.Object;@73882a5d, toJSON=org.mozilla.javascript.InterpretedFunction@53fe9f7f, name=MODULE_DOES_NOT_EXIST, toString=org.mozilla.javascript.InterpretedFunction@32f5a028, id=, message=Module does not exist: /es.js, TYPE=error.SuiteScriptModuleLoaderError}","message":"","stack":["<anonymous>(adhoc$-1$debugger.user:4)"]}
Мы испробовали различные механизмы изменения конфигурации Require JS, которые мы нашли предложенными в документации NetSuite и в Интернете, такие как аргумент @NAmdConfig /Directory/...
JSDo c и require.config(...)
, без успеха. @NAmdConfig
кажется полностью игнорируемым в каждом контексте выполнения, в котором мы его пробовали, и require.config(...)
нельзя использовать для изменения основной конфигурации контекста Require JS.
Is index.js
разрешение просто нарушено в реализации SuiteScript 2.0 Require JS? Есть ли обходные пути?