我已經完成了在TypeScript中重寫我的JavaScript框架項目。現在我試圖在許多其他Web項目中使用這些文件。當前項目的TypeScript文件看不到TypeScript的鏈接文件
我試過鏈接(鏈接文件)他們到Web項目。首先我注意到,我無法將構建操作更改爲「TypeScriptCompile」。 .ts文件被編譯在它們的源文件夾中,而不是它們被鏈接的地方。問題是,當在web項目中創建一個新文件.ts文件時,它看不到鏈接的文件,並且出現TypeScript錯誤。
此外,每次嘗試使用鏈接的TypeScript文件構建項目時,都會使Visual Studio崩潰。
我正在使用AMD和RequireJS。該結構需要得到尊重。我將baseURL設置爲/ Scripts /,並且我的框架和TS文件需要位於該結構中。
有沒有人有任何想法?
這裏是我想要
樣本 從內容從一個框架項目鏈接文件:
export class Log {
static error (msg: string) { console.log(msg); }
}
內容從文件中使用鏈接文件的Web項目:
import fw = module('linkedFile');
fw.Log.error('this file can\'t find the linked file, so this code won\t work');
謝謝!
UPDATE: 我迄今發現的唯一方法是框架文件從源項目複製到我的Web項目上後生成:
xcopy /y /e /s /d "$(ProjectDir)Scripts\." "$(ProjectDir)..\..\OtherProject\Scripts\."
的問題,這是我們必須編輯框架第一個項目中的文件,否則,我們的更改將被覆蓋。
更新2: 我目前正在使用此腳本來自動複製它們在項目中的所有鏈接文件。你需要編輯你的CSPROJ文件,它必須是一個WEB項目。檢查鏈接的完整描述:
<!-- ======================== -->
<!-- Copy linked files -->
<Target Name="_CopyLinkedContentFiles">
<!-- Remove any old copies of the files -->
<Delete Condition=" '%(Content.Link)' != '' AND Exists('$(WebProjectOutputDir)\%(Content.Link)') " Files="$(WebProjectOutputDir)\%(Content.Link)" />
<!-- Copy linked content files recursively to the project folder -->
<Copy Condition=" '%(Content.Link)' != '' " SourceFiles="%(Content.Identity)" DestinationFiles="$(WebProjectOutputDir)\%(Content.Link)" />
</Target>
<!-- Override the default target dependencies to -->
<!-- include the new _CopyLinkedContentFiles target. -->
<PropertyGroup>
<PrepareForRunDependsOn>
$(PrepareForRunDependsOn);
_CopyWebApplication;
_CopyLinkedContentFiles;
_BuiltWebOutputGroupOutput
</PrepareForRunDependsOn>
</PropertyGroup>
<PropertyGroup>
<!-- <PostBuildEvent>$(MSBuildBinPath)\msbuild.exe "$(ProjectDir)_build\site.xml"</PostBuildEvent> -->
</PropertyGroup>
<!-- ======================== -->
發佈這個問題後我做了什麼是將文件從$(ProjectPath)xcopy複製到所有我的網站後構建。這有效,但我們需要記住只修改源文件,因爲它們將被覆蓋。我認爲Nuget包是最好的解決方案,除了實際支持LinkedFiles的TypeScript。我會嘗試並讓你知道。謝謝 ! – wizmagister
實際上,由於我使用AMD和RequireJS,所以不確定Nuget包是否會真正起作用。該結構需要得到尊重。我將baseURL設置爲腳本,並且我的框架和新的TS文件需要位於該結構中。再次感謝。 – wizmagister
查看絕對鍵入的NuGet軟件包 - 將每個腳本放在正確的文件位置,並且可以一次性獲得所有您需要的所有依賴關係。 – Fenton