2016-02-15 78 views
0

我是使用gulp,mocha,chai編寫用於測試我的JavaScript文件的測試用例的新成員。配置要求js在javascript中加載AMD模塊

我的文件目錄

Project 
|-- _src 
| `-- scripts 
|  `-- ui 
|   |-- ChangePos.js 
|   |-- PosRenderer 
|   `-- utils 
|    |-- Element 
|    `-- Config 
`-- test 
    `-- index.js 

utils的/ ChangePos.js

define(['Config', 
      'Element', 
      'PosRenderer' 

] { 
     function() { 
     //mycode 
     } 
    }); 

它在配置和組件文件的依賴性。

測試/ index.js

var requirejs = require("requirejs"); 
var chai = require('chai'); 
var expect = chai.expect; 

requirejs.config({ 
    baseUrl: './../_src/scripts/ui', 
    paths: { 
     utils: 'utils' 
    }, 

    nodeRequire: require, 
    map: { 
     '*': { 
      'NIT.Cookie': 'utils/Element' 
     } 
    } 
}); 

    describe('almeObjectConfig', function() { 
     var ele, conf, obj; 
     before(function (done) { 
      requirejs(['utils/Config', 'utils/Element'], 
       function (config, element) { 
        console.log('Configuration: ' + config); 
        console.log('Element: ' + element); 
       ele = element; 
       conf = config; 
       done(); 
      }); 
     }); 

我試圖加載ChangePos這對配置通過指定路徑 'utils的' 依賴性。

utils: 'utils' 

我可以通過指定的基本URL,但baseUrl:'./../_src/scripts/ui/utils'這裏是UI文件夾內只檢查,並給予一個未定義的對象明確負載元件。

如果我將所有文件放在UI文件夾中,它會正常工作,因爲它正在考慮基本URL並只在基本文件夾中查看。

我不知道我在這裏錯過了什麼。 感謝您的幫助。

回答

0

看你的配置我什麼也看不見,將允許ChangePos加載utils/ElementElementutils/ConfigConfig。特別是,paths配置'utils': 'utils'不會這樣做,並且對於您具有的特定配置沒有任何作用。要得到代碼你必須工作,你必須有paths成爲:

paths: { 
    'Config': 'utils/Config', 
    'Element': 'utils/Element' 
} 
+0

路易斯,非常感謝。有效!! – Shagun