加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何使用RequiresJs加载typescript模块(asp.net

发布时间:2020-12-16 09:33:00 所属栏目:asp.Net 来源:网络整理
导读:参见英文答案 Mismatched anonymous define() module????????????????????????????????????6个 假设我有2个文件:test1.ts和test2.ts.这是test1的内容: export const x = 1 这是test1的内容: import { x } from './test2'alert(x); 当我运行应用程序时,我
参见英文答案 > Mismatched anonymous define() module????????????????????????????????????6个
假设我有2个文件:test1.ts和test2.ts.这是test1的内容:

export const x = 1

这是test1的内容:

import { x } from './test2'

alert(x);

当我运行应用程序时,我收到此错误:未捕获的ReferenceError:在test1.js:2中未定义exports.

根据其他帖子,这个错误是由于Web浏览器不支持导出,并且需要(…).要解决这个问题,其中一个解决方案就是使用RequireJs之类的东西.

所以我做了一些阅读. This article对我来说是最容易理解的.

>我在_Layout.cshtml文件中添加了这一行.

< script src =“?/ Scripts / require.js”>< / script>
>创建配置文件.

requirejs.config({
   baseUrl: '/Scripts/js'
});

>我已将test1和test2放在/ Scripts / js文件夹中.
>运行应用程序,但仍然得到相同的错误:未捕获的ReferenceError:在test1.js:2中未定义exports.

如何使用RequireJs修复错误?

谢谢你的帮助.

编辑

解决方案不一定是RequireJs,而是解决问题的任何方法.有很多关于打字稿的精彩教程,但他们都假设人们正在使用node或angularjs.我只需要在我的asp.net mvc应用程序中添加一些打字稿.只要它是一个文件,事情就好了.现在我想重用一些代码,因此我将它们组织在不同的文件中.不幸的是,由于这个错误我无法前进.我已经在那里坐了3天了.

?编辑2

我已经按照@artem的建议添加了commonJs给amd,

{
  "compilerOptions": {
     "module": "amd","noImplicitAny": true,"removeComments": true,"preserveConstEnums": true,"sourceMap": true
 }

}

现在我收到了这个错误.

Uncaught Error: Mismatched anonymous define() 
module: function (require,exports,CommonTypes_1) {
//...

好像this question正在处理同样的问题.我应该将此代码放在新文件中吗?

解决方法

我知道这有点旧,但只是遇到了这个问题.这是我解决它的方式.

这篇文章非常有帮助:https://volaresystems.com/blog/post/2014/05/27/Adding-RequireJS-to-an-ASPNET-MVC-project

首先,将require.js添加到BundleConfig.cs.我看起来像这样:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
    "~/Scripts/jquery-{version}.js","~/Scripts/require.js"));

接下来,确保_Layout.cshtml在捆绑后呈现“脚本”部分.我看起来像这样:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts",required: false)

然后在您的视图中,渲染脚本部分,如下所示.我的Index.cshtml看起来像这样:

@section scripts
{
    <script>
        require(["Scripts/Init"],function (Init) {
                Init.Start();
            }
        );
    </script>
}

我的?/ Scripts / Init.ts文件如下所示:

import * as DataBind from "./DataBind"

export function Start() {
    DataBind.SetAllDatabinds(null);
}

从那里,您可以根据需要加载所有模块.我发现重要的是在TypeScript文件中没有任何“松散代码”(例如示例中的“alert(x)”).一切都应该出口.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读