У меня есть библиотека машинописного текста, которую я написал, которая испускается следующим образом. Я не уверен, как импортировать из этого модуля.Как импортировать из вложенного модуля?
node_modules/мой-модуль/расстояние/index.js (частичные)
define("services/UserService", ["require", "exports", ..., "services/BaseService"], function (require, exports, ..., BaseService_31) {
"use strict";
var UserService = (function (_super) {
// ... stuff here ...
return UserService;
}(BaseService_31.BaseService));
exports.UserService = UserService;
});
Я установил этот пакет с npm
и настроен JSPM следующим образом:
config.js (частично)
System.config({
defaultJSExtensions: true,
transpiler: "none",
paths: {
"*": "dist/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*",
"npm-ext:*": "node_modules/*"
},
map: {
...
"my-module": "npm-ext:my-module/dist/index.js",
...
}
});
Я ожидал, что сможете импортировать эту cla сс следующим ...
import {UserService} from "my-module/services/UserService";
Я ожидал SystemJS разрешить путь к my-module
, а затем найти services/UserService
модуль, и захватить единственный экспорт UserService
. Но в Chrome консоли я вижу, это путь, который загружается:
node_modules/my-module/dist/index.js/models/UserService.js
Что такое правильный способ импортировать модуль, такой как это?
Бонус: Как я могу обойти, включая полный путь до index.js
?
Спасибо Вы знаете, как настроить мою сборку TS для создания «нормальных» модулей, чтобы я мог импортировать с помощью «my-module/services/UserService»? Кроме того, «модели» были, вероятно, опечаткой, подтвердят. –
Единственный способ: знаете, имеет жесткую компоновку для исходных файлов. Предположим, у вас есть папка src/my-module/service с UserService.ts и BaseService.ts. Также предположим, что src и dist находятся на верхнем уровне. Для генерации «нормальных» модулей используйте «rootDir»: «src», «outDir»: «dist» 'в tsconfig.json. Обратите внимание, что каждый модуль будет находиться в отдельном файле. Чтобы создать пакет, замените 'outDir' на' 'outFile": dist/index.js "'. В обоих случаях вы можете импортировать с помощью 'from 'my-module/services/UserService''. – artem