一個腳本在我的埃裏克·艾略特的書,我覺得這三個代碼,但我無法理解像使用它們:使用Require.js與qunit
(1)
define(['ch04/amd1', 'ch04/amd2'],
function myModule(amd1, amd2) {
var testResults = {
test1: amd1.test(),
test2: amd2.test()
},
// Define a public API for your module:
api = {
testResults: function() {
return testResults;
}
};
return api;
});
(2)
require(['ch04-amd'], function (amd) {
var results = amd.testResults();
test('AMD with Require.js', function() {
equal(results.test1, true,
'First dependency loaded correctly.');
equal(results.test2, true,
'Second dependency loaded correctly.');
});
});
(3)
if (typeof define === 'function') {
define([], function() {
return api;
});
}
我試圖用require.js和我寫這些代碼,但它不工作:
的javascript \ librerie \的jquery.js
的javascript \ librerie \ qunit.js
的javascript \ librerie \ require.js
script_libro_eric_elliott.php
<!DOCTYPE html>
<html>
<head>
<title>Utilizzo della libreria Require.js</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script data-main="javascript/moduli" src="javascript/librerie/require.js">
</script>
</head>
<body>
<div>Utilizzo della libreria Require.js</div>
</body>
</html>
的javascript \模量\ script_libro.js
define(['ch04/amd1', 'ch04/amd2'],
function myModule(amd1, amd2) {
var testResults = {
test1: amd1.test(),
test2: amd2.test()
},
// Define a public API for your module:
api = {
testResults: function() {
return testResults;
}
};
return api;
});
的javascript \模量\ main.js
require(['ch04-amd'], function (amd) {
var results = amd.testResults();
test('AMD with Require.js', function() {
equal(results.test1, console.log(true),
'First dependency loaded correctly.');
equal(results.test2, console.log(true),
'Second dependency loaded correctly.');
});
});
的javascript \ configurazione。 js
/* global requirejs */
requirejs.config({
"baseUrl": "javascript/librerie",
"paths": {
"moduli": "../moduli"
},
"shim": {
"script_libro": {
deps: ["jquery", "qunit"]
}
}
});
requirejs(["moduli/main"]);
我想在控制檯上編寫輸出字符串,所以我也編輯Eric Elliot的腳本。在我的控制檯上,我只能閱讀:
Error: Script error for: moduli
http://requirejs.org/docs/errors.html#scripterror
請問您能幫我嗎?
新的更新
我認爲,問題出在script_libro.js事實上控制檯僅在此文件中找到一個錯誤。我送你我的新代碼:
script_libro_eric_elliott.php
<!DOCTYPE html>
<html>
<head>
<title>Utilizzo della libreria Require.js</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,
initial-scale=1.0">
<script data-main="javascript/configurazione.js"
src="javascript/librerie/require.js">
</script>
</head>
<body>
<div>Utilizzo della libreria Require.js</div>
<div id="contenitore"></div>
</body>
</html>
的javascript \模\ script_libro。JS
define(['jquery', 'qunit'], function myModule(amd1, amd2) {
var testResults = {
test1: amd1.test(),
test2: amd2.test()
},
api = {
testResults: function() {
return testResults;
}
};
return api;
});
的javascript \模\ main.js
require(['javascript/moduli/script_libro.js'], function (amd) {
var results = amd.testResults;
test('AMD with Require.js', function() {
equal(results.test1, true,
console.log('First dependency loaded correctly.'));
equal(results.test2, true,
console.log('Second dependency loaded correctly.'));
});
});
的javascript \ configurazione.js
require.config({
baseUrl: 'javascript/librerie',
urlArgs: "bust=" + (new Date()).getTime(),
paths: {
CartellaModuli: '../moduli',
},
shim: {
script_libro: {
deps: ['qunit', 'jquery']
}
}
});
require(['CartellaModuli/main']);
我得到這個消息: 錯誤:腳本錯誤:模/ script_libro http://requirejs.org/docs/errors.html#scripterror require.js:8:251 錯誤:腳本錯誤:qunit http://requirejs.org/docs/errors.html#scripterror require.js:8:251 錯誤:腳本錯誤:jquery http://requirejs.org/docs/errors.html#scripterror require.js :8:251 我必須在configurazione.js文件中寫入什麼? – marchionili
你應該從簡單的東西開始,比如打印Hello World的單個模塊。沒有庫,沒有額外的配置。然後加入,直到它不再有效。然後閱讀requirejs文檔,學會使用瀏覽器的開發工具,然後如果遇到問題,可以在此處發佈更具體的問題。 – ekuusela
最後我發現了錯誤,但我找不到解決方案。我試圖用這個庫來解決其他問題,我必須說它是正確的。我不明白爲什麼作者使用test1.test(),這個代碼是什麼?在控制檯中,我讀到「TypeError:amd1.test不是函數」,它是正確的。這個代碼是什麼意思的作者? – marchionili