[英]How to import external module (async.js) in javascript main file
因此,在工作中,我们购买了一个主题,我必须对其进行自定义并将其用于内部项目。 他们使用pug从某些模板生成最终文件。 我可以在.pug模板中插入一些外部javascript文件。
来自他们的文件的空js示例如下所示:
(function(window, document, $) {
'use strict';
$(window).on('load', function () {
})
})(window, document, jQuery);
(jQuery和bootstrap自动包含在模板中)。 我成功创建了我的JavaScript文件,并仅使用纯js和一些jQuery将它们用于项目(但是我有点想念angularjs,但是我无法同时使用.pug和angular)。
我到了必须对服务器发出多个GET请求的地步,我需要它们是异步的。 在我以前的项目中,我成功使用了异步模块,我也想在这里使用它。 惊喜,惊喜,我无法导入模块。
我尝试使用像import * as async from '../libs/async/async.js';
这样的简单行import * as async from '../libs/async/async.js';
但是,如果我想使用一个简单的async.series,它会说: Uncaught TypeError: async.series is not a function
。 我尽了一切可能。 错误从上面的错误到"Unrecognized token *"
不等。 是的,我将.js文件声明为type="module"
。
我尝试自己模拟问题,并创建了以下文件结构(类似于主题中的结构)。
.
├── assets
│ └── js
│ ├── dashboards
│ │ └── dash.js
│ └── libs
│ └── async.js
└── src
└── index.html
在.html文件中,我仅包含jQuery和dash.js文件。 dash.js文件包含以下代码:
'use strict';
import * as async from '../libs/async.js';
$(window).on('load', function () {
function init() {
console.log("Hello there!");
async.series([
function(callback) { console.log(5); callback(); },
function(callback) { console.log(6); callback(); }
]);
}
init();
});
但是……又是错误。
Uncaught ReferenceError: async is not defined
at init (dash.js:8)
我到底如何导入异步模块(或任何其他模块)并正确使用它?
更新:.html文件中,如果我包含以下行
<script src="https://cdnjs.cloudflare.com/ajax/libs/async/2.6.1/async.js"></script>
看来它可行,但我真的很想知道如果没有它就可以完成。
在.pug文件中,更改.js文件的顺序很有帮助。 我把async.js
script(src=assets_path + '/js/libs/async.min.js', type='text/javascript')
作为自定义js文件的第一行,它可以正常工作。 无需其他进口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.