Можно ли использовать сопоставление пути модуля в NativeScript во время выполнения?
«Пути» TypeScript опция компилятора позволяют сопоставлять идентификаторы виртуальных модулей с физическими. Если, например, требуется модуль node_modules/my_package/dist/commonjs/my_modules/my_module, можно определить сопоставление, а затем вместо этого потребовать виртуальный модуль my_modules/my_module:
// tsconfig.json
{
"compilerOptions": {
"paths": {
"my_modules/*": [ "node_modules/my_package/dist/commonjs/my_modules/*" ]
}
}
}
Это отлично работает во время компиляции, но компилятор TypeScript не будет выдавать разрешенные идентификаторы модулей. Вместо этого он оставляет указанные (виртуальные) идентификаторы модулей на месте. В результате модули не будут найдены во время выполнения.
Существует пакет узла под названием псевдоним модуля, который решает эту проблему в среде nodejs. Однако мне не удалось настроить это в среде выполнения NativeScript.






Для тех, кто сталкивается с той же проблемой, вот что:
После обновления до нового пакетный рабочий процесс NativeScript проблема была решена простым добавлением соответствующего сопоставления в webpack.config.js:
const config = {
resolve: {
alias: [
"my_modules/*": "node_modules/my_package/dist/commonjs/my_modules/*"
]
}
}
Он уже работает с NativeScript, фактически с предыдущими версиями NativeScript аналогичные настройки по умолчанию (
"./node_modules/tns-core-modules/*") использовались для импорта любого модуля изtns-core-modulesбез ссылки на имя пакета.