2017-10-05 134 views
0

我正在運行一個純粹的JavaScript項目(不使用節點),我需要加載一個名爲Bluebird的Promises模塊。 我沒有經驗用JavaScript加載模塊,我以前一直使用平均值堆棧。JavaScript - 使用requireJS加載Bluebird模塊

我已在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 
}); 

的問題是,我不知道是什麼來代替「//加載模塊」來加載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([])

+0

您是否檢查了requireJS的文檔/示例...? –

+0

嗨,我沒有檢查http://requirejs.org/docs/errors.html#mismatch,看看如何解決錯誤,並使用'require(['bluebird'],函數(Promise){//模塊加載} );'加載正常,但其餘的我的App.js不起作用,所以我必須在如何加載requirejs時出錯。 – Gary

+0

用法示例[here](http://requirejs.org/docs/api.html#usage)與您擁有的看起來有很大不同。 –

回答

0

結束了我從requirejs原代碼錯誤文檔是正確的,但我在我的index.html導致它失敗的問題。

的正確方法包括藍鳥是:

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

//module loaded你需要把大部分App.js代碼。

如果requirejs正在加載它,則需要確保不要包含藍鳥。