我已将TypeScript.MSBuild NuGet包添加到两个单独的项目中。
(刚刚使用2.7.2版进行了测试。)
在当地,它运行良好。在Kudu,它建立良好。但是,在travis-ci和Bitbucket的管道上,我收到每个.ts文件的以下错误:
CompileTypeScriptWithTSConfig:
/home/travis/.nvm/versions/node/v6.12.0/bin/node /home/travis/build/<user>/<project>/packages/Microsoft.TypeScript.MSBuild.2.7.2/tools/tsc/tsc.js --project "/home/travis/build/<user>/<project>/Scripts/TypeScript/tsconfig.json" --listEmittedFiles
/home/travis/build/<user>/<project>/packages/Microsoft.TypeScript.MSBuild.2.7.2/tools/Microsoft.TypeScript.targets(444,5): error : Failed to create URI from '\home\travis\build\<user>\<project>\Scripts\TypeScript\App.js'. [/home/travis/build/<user>/<project>/<project>.csproj]
/home/travis/build/<user>/<project>/packages/Microsoft.TypeScript.MSBuild.2.7.2/tools/Microsoft.TypeScript.targets(444,5): error : Failed to create URI from '\home\travis\build\<user>\<project>\Scripts\TypeScript\App.js.map'. [/home/travis/build/<user>/<project>/<project>.csproj]
我的tsconfig.json
文件如下:
{
"compilerOptions": {
"noImplicitAny": true,
"noImplicitThis": true,
"noEmitOnError": true,
"module": "commonjs",
"target": "es5",
"sourceMap": true,
"removeComments": true
},
"compileOnSave": true
}
另外,值得注意的是,在本地运行命令会得到正确的结果:(请注意,我DID运行nvm use 6.12.0
以查看它是否是节点问题)
C:\Users\User\Projects\Project> node ./packages/Microsoft.TypeScript.MSBuild.2.7.2/tools/tsc/tsc.js --project "<Project>/Scripts/TypeScript/tsconfig.json" --listEmittedFiles
TSFILE: C:/Users/User/Projects/Project/Scripts/TypeScript/App.js
TSFILE: C:/Users/User/Projects/Project/Scripts/TypeScript/App.js.map
所以我的问题是:如何保留TypeScript.MSBuild NuGet包并让它与我的ci一起使用?
编辑: 我通过ssh连接到travis容器并运行msbuild命令两次。第二次,它建好了。似乎MSBuild任务太快就试图建立一个URI,可能吗?
答案 0 :(得分:0)
我通过将tsconfig.json
移动到项目的根文件夹来实现它。