javascript - TypeScript + AMD + out-parameter fungerar inte
Jag har laddat ner ett projekt som använder AMD. Allt fungerar bra, men jag ville testa hur man kan sammanfoga alla kompilerade filer till en enda utdatafil all.js. Jag hittade något om --out-parametern och följde stegen härifrån: https://stackoverflow.com/a/14302902/1252575
Det fungerade inte för mig, jag får ett fel:
Kommandot "tsc --module AMD --out all.js "C:\TypeScriptWithRequireAMD_0.8.1\app\classes\Test.ts" "C:\TypeScriptWithRequireAMD_0.8.1\modulesequire.d.ts" "C:\TypeScriptWithRequireAMD_0.8.1\app\classes\Greeter.ts" "C:\TypeScriptWithRequireAMD_0.8.1\app\AppConfig.ts" "C:\TypeScriptWithRequireAMD_0.8.1\app\AppMain.ts"" avslutades med kod 1.
Så här ser min filstruktur ut:
Förresten, jag har en andra fråga. Kopierar --out-parametern innehåll från lib-katalogen? Om inte, hur inkluderar man dem också?
[redigera 1.]
Åh, jag glömde... Det är en del av min .csproj-fil:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptSourceMap>--module AMD</TypeScriptSourceMap>
</PropertyGroup>
<Target Name="BeforeBuild">
<Message Text="Compiling TypeScript files" />
<Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
<Exec Command="tsc $(TypeScriptSourceMap) --out all.js @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</Target>
[redigera 2.]
Här är min AppConfig.js:
require.config({
baseUrl: '../',
paths: {
'jquery': 'lib/jquery-1.7.2',
'underscore': 'lib/underscore',
'backbone': 'lib/backbone',
'console': 'lib/console',
'greeter': 'app/classes/Greeter',
'test': 'app/classes/Test'
},
shim: {
jquery: {
exports: '$'
},
underscore: {
exports: '_'
},
backbone: {
deps: [
"underscore",
"jquery"
],
exports: "Backbone"
},
console: {
exports: "console"
},
greeter: {
deps: [
"test"
]
},
test: {
deps: [
"greeter"
]
}
}
});
require([
'jquery',
'underscore',
'backbone',
'console',
'app/AppMain',
'app/classes/Greeter',
'app/classes/Test'
], function ($, _, Backbone, console, main, greeter, test) {
var appMain = new main.AppMain();
appMain.run();
});
Svar #1
Enligt definition laddas AMD-skript asynkront av en AMD-laddare. För att placera dem alla i en fil behöver du göra en analys av beroenden för varje fil så att de infogas i rätt ordning. Detta är inte något som --out gör. Du behöver undersöka något som RequireJS-optimeraren istället.
