尚未为上下文加载模块名称 "jquery":_。使用要求
Module name "jquery" has not been loaded yet for context: _. Use require
我正在尝试将我的 Javascript 文件迁移到 Typescript 文件,但是当我尝试在 html 页面中使用转译的 javascript 文件时,我遇到了以下错误:
https://requirejs.org/docs/errors.html#notloaded
at makeError (require.min.js:1)
at Object.s [as require] (require.min.js:1)
at requirejs (require.min.js:1)
at helloworld.js:4
我的打字稿文件
import * as $ from "jquery";
export class Loading {
public showLoadingModal(msg?: string) {
if (msg === undefined) {
msg = "Loading ...";
}
$("#dialog1 label").html(msg);
//$('#pleaseWaitDialog').modal({ backdrop: 'static', keyboard: false });
}
public hideLoadingModal() {
// $('#pleaseWaitDialog').modal('hide');
}
public keepOpenLoadingModal() {
$("#dialog1").on("hide.bs.modal", function () {
return false;
});
this.showLoadingModal();
}
}
已转译 Javascript 文件
"use strict";
exports.__esModule = true;
exports.Loading = void 0;
var $ = require("jquery");
var Loading = /** @class */ (function () {
function Loading() {
}
Loading.prototype.showLoadingModal = function (msg) {
if (msg === undefined) {
msg = "Loading ...";
}
$("#dialog1 label").html(msg);
//$('#dialog1').modal({ backdrop: 'static', keyboard: false });
};
Loading.prototype.hideLoadingModal = function () {
// $('#dialog1').modal('hide');
};
Loading.prototype.keepOpenLoadingModal = function () {
$("#dialog1").on("hide.bs.modal", function () {
return false;
});
this.showLoadingModal();
};
return Loading;
}());
exports.Loading = Loading;
我已经从 CDN 加载了 Jquery,如下所示
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<base href="/" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We"
crossorigin="anonymous"
/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
var exports = {};
</script>
<script src="helloworld.js"></script>
</head>
<body>
<h3 class="text-center mt-2 mb-2">Demo</h3>
</body>
</html>
我也尝试用下面的代码加载 jquery 但没有成功
var exports = {};
requirejs.config({
baseUrl: "/js/lib",
paths: {
jquery: "jquery.min",
},
});
requirejs(["jquery"], function (jquery) {
console.log(jquery); // OK
});
</script>```
Can you please help me resolve the error, I know this is very first step in my migration journey and I am badly stuck here, any help is much appreciated.
您已将代码从 TypeScript 转换为 CommonJS。
浏览器不支持CommonJS模块系统,只支持ECMAScript模块系统。
您使用的requirejs
库仅支持AMD模块系统。
您应该在转译代码时解决这个问题。您需要定位浏览器。这通常使用 Webpack which has a loader for TypeScript modules.
来完成
旁白:如果您正在 import
ing(并因此捆绑)jQuery,那么您也不应该从 CDN 加载它。
我正在尝试将我的 Javascript 文件迁移到 Typescript 文件,但是当我尝试在 html 页面中使用转译的 javascript 文件时,我遇到了以下错误:
https://requirejs.org/docs/errors.html#notloaded
at makeError (require.min.js:1)
at Object.s [as require] (require.min.js:1)
at requirejs (require.min.js:1)
at helloworld.js:4
我的打字稿文件
import * as $ from "jquery";
export class Loading {
public showLoadingModal(msg?: string) {
if (msg === undefined) {
msg = "Loading ...";
}
$("#dialog1 label").html(msg);
//$('#pleaseWaitDialog').modal({ backdrop: 'static', keyboard: false });
}
public hideLoadingModal() {
// $('#pleaseWaitDialog').modal('hide');
}
public keepOpenLoadingModal() {
$("#dialog1").on("hide.bs.modal", function () {
return false;
});
this.showLoadingModal();
}
}
已转译 Javascript 文件
"use strict";
exports.__esModule = true;
exports.Loading = void 0;
var $ = require("jquery");
var Loading = /** @class */ (function () {
function Loading() {
}
Loading.prototype.showLoadingModal = function (msg) {
if (msg === undefined) {
msg = "Loading ...";
}
$("#dialog1 label").html(msg);
//$('#dialog1').modal({ backdrop: 'static', keyboard: false });
};
Loading.prototype.hideLoadingModal = function () {
// $('#dialog1').modal('hide');
};
Loading.prototype.keepOpenLoadingModal = function () {
$("#dialog1").on("hide.bs.modal", function () {
return false;
});
this.showLoadingModal();
};
return Loading;
}());
exports.Loading = Loading;
我已经从 CDN 加载了 Jquery,如下所示
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<base href="/" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We"
crossorigin="anonymous"
/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
var exports = {};
</script>
<script src="helloworld.js"></script>
</head>
<body>
<h3 class="text-center mt-2 mb-2">Demo</h3>
</body>
</html>
我也尝试用下面的代码加载 jquery 但没有成功
var exports = {};
requirejs.config({
baseUrl: "/js/lib",
paths: {
jquery: "jquery.min",
},
});
requirejs(["jquery"], function (jquery) {
console.log(jquery); // OK
});
</script>```
Can you please help me resolve the error, I know this is very first step in my migration journey and I am badly stuck here, any help is much appreciated.
您已将代码从 TypeScript 转换为 CommonJS。
浏览器不支持CommonJS模块系统,只支持ECMAScript模块系统。
您使用的requirejs
库仅支持AMD模块系统。
您应该在转译代码时解决这个问题。您需要定位浏览器。这通常使用 Webpack which has a loader for TypeScript modules.
来完成旁白:如果您正在 import
ing(并因此捆绑)jQuery,那么您也不应该从 CDN 加载它。