Пакет JSPM с транспилером TypeScript
Я получаю больше в System.js и JSPM, где я пришел к тому моменту, когда хочу связать исходный код TypeScript с пакетом JavaScript.
Теперь я могу связать свой сгенерированный код JavaScript с чем-то вроде:
jspm bundle some/source/path someDestFile.js
но тогда мне нужно предварительно создать все мои TypeScript сначала в JavaScript и , затем, оставив все скомпилированные (и разделенные) JS файлы. Это далеко не идеально!
Я прошел через jspm docs здесь, но не нашел решения.
Просто, чтобы быть ясным, я не хочу компилировать TypeScript в свой браузер, а представляет собой предварительно скомпилированный пакет надежного JavaScript.
Как это сделать?
P.S. Я использовал установку транспилятора TypeScript, как показано здесь
Ответы
Ответ 1
Вы можете сделать это с помощью JSPM builder.
Вы можете связать все typescript файлы и 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/
Ответ 2
Я считаю, что вопрос устарел. Я просто попробовал это с JSPM 0.17.0-beta.31 с плагином typescript (https://github.com/frankwallis/plugin-typescript) и "jspm bundle" действительно пре-перевод TypeScript для меня.
"jspm bundle-sfx" теперь "jspm build". Поскольку первоначальный принятый ответ предложил переключиться на bundle-sfx (build), который не должен быть нужен сейчас, я хотел бы уточнить решение о том, следует ли использовать пакет или сборку. Я считаю, что пакет более полезен для ускорения разработки, тогда как сборка может создавать меньший файл с большей оптимизацией, поэтому вы можете захотеть использовать пакет во время разработки и сборки при выпуске. Имейте в виду, что если вы используете сборку на библиотеке, код, который импортирует вашу библиотеку, не сможет делиться своими зависимостями.