簡體   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