Mam prosty projekt requirejs, który próbuję zoptymalizować do jednego pliku za pomocą węzła. Struktura projektu jest taka.RequireJs Optimizer zminimalizuje się do jednego pliku, ale nie uruchamia głównego zbudowanego
|___index.html | ├───css │ style.css │ └───scripts │ main.js │ ├───lib │ require.js │ underscore.js │ └───modules module1.js module2.js module3.js
tutaj jest mój plik build
//build.js
({
baseUrl: "./SimpleRequireJsProject/scripts",
name:"main",
out:"main-built.js"
})
Z r.js i build.js spoza pliku projektu. Uruchomiłem optymalizator za pomocą konsoli węzła.
node r.js -o build.js
Wszystko działa dobrze. wyjście main-built.js zostanie utworzone. Ale kiedy wymienić
<script data-main="scripts/main" src="scripts/lib/require.js"></script>
z
<script data-main="scripts/main-built" src="scripts/lib/require.js"></script>
kiedy uruchomić plik indeksu. Nie ma błędu, ale nie ma wyjścia. Oczekuję komunikatów konsoli tak jak to. który współpracuje z oryginalnymi danymi-main jako głównego
//output main started m1 started m2 started..starting m3 from m2 m3 started
proszę mi pomóc dowiedzieć się, dlaczego projekt nie działa i nie ma błędu, jak również. :(
//main.js
define([
'lib/underscore',
'modules/module1',
'modules/module2'
],
function (_, Module1, Module2) {
console.log('main started');
var module1 = new Module1();
var module2 = new Module2();
module1.start();
module2.start();
});
//module1.js
define(['lib/underscore'],
function (_) {
function Module1() {
this.start = function() {
console.log('m1 started');
};
}
return Module1;
});
//module2.js
define(['lib/underscore', 'modules/module3'],
function (_, Module3) {
function Module2() {
this.start = function() {
console.log('m2 started..starting m3 from m2');
var module3 = new Module3();
module3.start();
};
}
return Module2;
});
//module3
define([
'underscore'],
function (_) {
function Module3() {
this.start = function() {
console.log('m3 started');
};
}
return Module3;
});
//index.html
<!DOCTYPE html>
<html>
<head>
<link href="css/style.css" rel="stylesheet" type="text/css">
<title></title>
</head>
<body>
<div id="main"></div>
<script data-main="scripts/main-built" src="scripts/lib/require.js"></script>
</body>
</html>
Zgadza się, ja po prostu stwierdził, mają ten sam problem. Ale to jest problem, bo jeśli dodasz odciski palców (pomijanie pamięci podręcznej) do pliku, który nie załaduje się! –