繁体   English   中英

JavaScript-使用requireJS加载Bluebird模块

[英]JavaScript - Loading Bluebird module using requireJS

我正在运行一个纯JavaScript项目(不使用节点),并且需要为Promises加载一个名为Bluebird的模块。 我没有使用JavaScript加载模块的经验,过去我一直使用过均值堆栈。

我在index.html中具有以下内容:

<script data-main="assets/js/app/App.js" src="assets/js/vendor/require.js"></script>
<script src="assets/js/app/App.js"></script>

我在网上阅读了我的App.js中应该包含的内容:

define(["bluebird"],function(Promise){
   //load modules
});

问题是我不知道用什么代替“ // load modules”来加载bluebird.js。 我试过使用:

define(["bluebird"],function(Promise){
   Promise = require('bluebird');
});

但这有错误:

require.js:5 Uncaught Error: Mismatched anonymous define() module: function (Promise){
   Promise = require('bluebird');
}

请注意,我确实尝试仅使用var Promise = require('bluebird'); 但这返回了Uncaught Error: Module name "bluebird" has not been loaded yet for context: _. Use require([]) Uncaught Error: Module name "bluebird" has not been loaded yet for context: _. Use require([])

最终我的原始代码来自requirejs错误文档是正确的,但是我的index.html中存在问题,导致其失败。

包含蓝鸟的正确方法是:

require(['bluebird'], function (Promise) { //module loaded });

//module loaded您需要放入大部分App.js代码。

如果requirejs正在加载它,则需要确保您不包含for bluebird。

这是另一种方法:

define(function (require) {
    "use strict";
    var Promise = require('bluebird');
    ...
}

请注意,Bluebird模块不会延迟加载,这只是语法糖,可以使依赖项更具可读性。

检查http://requirejs.org/docs/whyamd.html#sugar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM