簡體   English   中英

使用Browserify時無法加載模塊進行實習測試

[英]Can't load modules for Intern testing while using Browserify

我正在嘗試使用Intern來測試我的一個模塊tested.js ,它依賴於另一個模塊dependency.js 因為我使用的是Browserify, tested.js包含以下內容:

var dep = require('./lib/dependency.js');

實習生拋出以下錯誤:

Warning: Error: Attempt to require unloaded module lib/dependency.js

這是我的測試文件的開頭:

define([

    'intern!object',

    'intern/chai!assert',

    'src/js/tested'

], function (registerSuite, assert, tested) {

    registerSuite({
            // ... 

我的實習配置文件使用默認的Dojo加載器。 我嘗試使用RequireJS,但無法使其正常工作(似乎實習生在使用替代AMD加載器方面存在一些問題: https: //github.com/theintern/intern/issues/147,https :// github .com / theintern / intern / pull / 132#issuecomment-33403157 )。

如何讓Intern正確加載所需的依賴項?

編輯:我正在使用grunt-browserify,但我正在測試非瀏覽器模塊 - 我只提到了Browserify來解釋我使用“require”的原因。

您無法在瀏覽器中加載CJS / Node.js模塊而無需在Browserify中運行它們。 這就是Browserify的全部目的。 您需要對模塊進行預瀏覽,切換到使用AMD模塊而不是為您的應用程序使用CJS模塊,或者引入代理來動態轉換模塊。

如果您嘗試通過Intern在Node.js中加載CJS模塊,則需要使用intern/dojo/node模塊來促進該加載:

define([

    'intern!object',

    'intern/chai!assert',

    'intern/dojo/node!src/js/tested'

], function (registerSuite, assert, tested) {

    registerSuite({
            // ... 

有關此內容的更多信息,請參閱文檔的“ 測試非AMD代碼”部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM