Пакет JSPM с транспортером TypeScript
Я больше разбираюсь в System.js и JSPM, где я подошел к моменту, когда я хочу собрать свой исходный код TypeScript в пакет JavaScript.
Теперь я могу связать мой сгенерированный код JavaScript с чем-то вроде:
jspm bundle some/source/path someDestFile.js
но затем мне нужно предварительно собрать весь мой TypeScript сначала в JavaScript, а затем связать, и я остаюсь со всеми скомпилированными (и отделенными) файлами JS. Это далеко от идеала!
Я прошел через документы JSPM здесь, но не нашел решения.
Просто чтобы прояснить ситуацию, я не хочу компилировать TypeScript в своем браузере, скорее, это предварительно скомпилированный пакет надежного JavaScript.
Как мне это сделать?
PS Я использовал установку транспортера TypeScript, как показано здесь
2 ответа
Вы можете сделать это с помощью JSPM Builder. Вы можете объединить все файлы машинописи и bundlesfx в один файл, сконфигурировав jspm.conf.js следующим образом:
System.config({
defaultJSExtensions: true,
transpiler: "typescript",
typescriptOptions: {
"module": "amd",
"experimentalDecorators": true
},
...
packages: {
"app": {
"main": "index",
"defaultExtension": "ts",
"meta": {
"*.ts": {
"loader": "ts"
}
}
}
});
а затем запустить:
jspm bundle-sfx src/index dist/app.js
Вы можете увидеть полный пример работы здесь: https://github.com/b091/ts-skeleton/
Я считаю, что вопрос устарел. Я только что попробовал это с JSPM 0.17.0-beta.31 с plugin-typcript ( https://github.com/frankwallis/plugin-typescript), и "jspm bundle" действительно предварительно перевел TypeScript для меня.
"jspm bundle-sfx" теперь является "сборкой jspm". Поскольку в первоначальном принятом ответе предлагалось перейти на bundle-sfx (сборка), что сейчас не нужно, я хотел бы уточнить решение о том, использовать ли комплект или сборку. Я считаю, что комплектация более полезна для ускорения разработки, в то время как сборка позволяет создавать меньший файл с большей оптимизацией, поэтому вы можете использовать комплектацию при разработке и сборку при выпуске. Имейте в виду, что если вы используете сборку на библиотеке, код, который импортирует вашу библиотеку, не сможет поделиться своими зависимостями.