簡體   English   中英

使用Typescript定義模塊名稱

[英]Defining module names with Typescript

我正在嘗試將TypeScript與RequireJS一起使用,但是我收到以下錯誤:

匿名的define()模塊不匹配。

我理解這是因為Typescript沒有發出模塊名稱,我自己將腳本加載到頁面中(我這樣做是因為它們被定義為MVC項目中的預定義包)。

目前輸出的.js看起來像這樣:

define(["require", "exports", "jquery"], function(require, exports, $) {...

當我需要它發出時:

define("MODULE_NAME" ["require", "exports", "jquery"], function(require, exports, $) {...

這可以使用Typescript,還是應該用Require.js自己的優化來替換最小化的bundle?

如果您使用的是ASP.NET和集成腳本捆綁 ,那么您是正確的:問題是捆綁包含多個匿名模塊。 雖然通常的做法是使用匿名模塊(並讓一些壓縮器/優化器稍后進行命名),但這不適用於ASP.NET捆綁,因為它只連接輸入的JS文件。 解決方案是使TypeScript創建命名模塊。 這可能與TS,所以你的問題的答案

這可能與Typescript有關

絕對是的,是的!

TypeScript 1.4增加了向編譯器發出AMD命名模塊的功能,如下所示:

///<amd-module name='NamedModule'/>
export class C {
}

問題不在於代碼生成(這是正確的)。 問題是您可能有一個加載此JavaScript文件的腳本標記。 它只應由RequireJS加載,使用data-main或作為另一個模塊的依賴項。

請參閱: http//requirejs.org/docs/errors.html#mismatch

刪除腳本標記

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM