javascript - Webpublish misslyckas med att respektera typescript-konfigurationen
I två separata instanser av VS2015 (update2 TypeScript v1.8) ignorerar webbpulicering inställningarna i tsconfig.json. Specifikt outDir.
Jag har en uppställning som så:
//tsconfig.json
{
"compilerOptions": {
"target": "es5",
"sourceMap": true,
"outDir": "../dist/",
"noResolve": false
},
"exclude": [
"../../node_modules",
"../../bower_components",
"../../typings"
],
"compileOnSave": true
}
tsconfig.json ligger i app\src-mappen och vid sparande genererar den utdata till src\dist-mappen. Detta fungerar som förväntat i utvecklingsläge och tillåter mig att gitignore:a src\dist-mappen och att köra tsc.cmd -p app/src mot webbprojektet på Azure (när man använder källkontroll på webbslots) kommer att generera om js. Exempel på indata och utdata nedan
app\
app\src\
app\src\tsconfig.json
app\src\app.ts
app\src\controllers\
app\src\controllers\file1.ts
...
app\dist\
app\dist\app.js
app\dist\controllers\
app\dist\controllers\file1.js
Men om jag publicerar på webben till en måldator eller till en mapp på det lokala filsystemet får jag ett fel när jag kopierar app\src\app.js.
Copying file app\src\app.js to obj\Release\Package\PackageTmp\app\src\app.js failed. Could not find file 'app\src\app.js'.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets Line 2998
Rad 2998 i Microsoft.web.publishing.targets är
<!--Force Copy Of all file to the $(WPPAllFilesInSingleFolder) if needed-->
<CopyPipelineFiles PipelineItems="@(FilesForPackagingFromProject)"
SourceDirectory="$(WebPublishPipelineProjectDirectory)"
TargetDirectory="$(WPPAllFilesInSingleFolder)"
SkipMetadataExcludeTrueItems="True"
UpdateItemSpec="True"
DeleteItemsMarkAsExcludeTrue ="True"
Condition="'@(FilesForPackagingFromProject)' != ''">
Om jag ändrar min debug-utdata till detaljerad och söker efter app.js i utdata ser jag två instanser
3> C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe --project "PROJECTNAME\app\src\tsconfig.json"
3>Done executing task "VsTsc".
3>Done building target "PreComputeCompileTypeScriptWithTSConfig" in project "PROJECTNAME.csproj".
3>Target "CompileTypeScriptWithTSConfig" in file "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\TypeScript\Microsoft.TypeScript.targets" from project "..PROJECTNAME.csproj" (target "Compile" depends on it):
3>Building target "CompileTypeScriptWithTSConfig" completely.
3>Output file "app\src\services\app.js" does not exist.
och
4>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets(2998,5): Error : Copying file app\src\services\app.js to obj\Release\Package\PackageTmp\app\src\services\app.js failed. Could not find file 'app\src\services\app.js'.
4>Done building project "PROJECTNAME.csproj" -- FAILED.
Det verkar som att det förväntar sig att utdata ska vara på plats och inte respektera utmatningskatalogen.
UPPDATERING: det finns en Github-issue som spårar den här buggen https://github.com/Microsoft/TypeScript/issues/6934