Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   как правильно пользоваться RequireJS ? (https://javascript.ru/forum/library-toolkit-framework/75447-kak-pravilno-polzovatsya-requirejs.html)

evgeniy123 10.10.2018 09:22

как правильно пользоваться RequireJS ?
 
Хочу сделать так что бы в конфиге определить название модуля - путь и потом подключать потом по имени только.

basket.html:
<script data-main="assets/js/page_js/basket.js" src="assets/js/require.js"></script>


basket.js:
require(["order_entity",  "databaseModule"], function(order_entity, databaseModule) {
   // databaseModule(10, 20);
});



Или мне делать так в каждом файле ? но это же не удобно 

 require.config({
 baseUrl: "modules",
 paths: {
 "constants": "../modules/constants",
 "firebase": "../modules/firebase/firebase-app",
 "firebase-auth": "../modules/firebase/firebase-auth",
 "firebase-database": "../modules/firebase/firebase-database",
 "databaseModule": "../modules/databaseModule",
 "user_entity": "../modules/entities/user",
 "order_entity": "../modules/entities/order"

 },
 callback: function (constants) {
 console.log(constants.url);
 console.log("eeee");
 }
 });

destus 10.10.2018 10:15

1 раз конфиг задается, в данном случае в точке входа (assets/js/page_js/basket.js)

evgeniy123 10.10.2018 10:35

Я перенёс в config_modules. A потом как подсоединить его в других файлах? У меня не получается. Он не берет нормальный путь что я указал в PATH

evgeniy123 10.10.2018 11:51

Цитата:

Сообщение от destus (Сообщение 496062)
1 раз конфиг задается, в данном случае в точке входа (assets/js/page_js/basket.js)

require.config({
    baseUrl: "assets/js/modules",
    paths: {
        constants: "constants",
        firebase: "firebase/firebase-app",
        firebase_auth: "firebase/firebase-auth",
        firebase_database: "firebase/firebase-database",
        databaseModule: "databaseModule",
        user_entity: "entities/user",
        order_entity: "entities/order"

    },
    callback: function (constants) {

        //console.log(constants.url);
        //console.log("eeee");
    }
});


require(["constants", "firebase"], function (constants, firebase) {

    var conf = constants.config_db;
    database = firebase.initializeApp(conf);


    console.log(constants.url);
    // databaseModule(10, 20);
});


Сделал пока так но как то хочется конфиг вынести в какой то общий файл ...

destus 10.10.2018 12:07

evgeniy123,
в доках написано, что можно так
<script>
var require = {
    baseUrl: "assets/js/modules",
    paths: {
        constants: "constants",
        firebase: "firebase/firebase-app",
        firebase_auth: "firebase/firebase-auth",
        firebase_database: "firebase/firebase-database",
        databaseModule: "databaseModule",
        user_entity: "entities/user",
        order_entity: "entities/order"

    },
    callback: function(constants) {

        //console.log(constants.url);
        //console.log("eeee");
    }
};
</script>
<script data-main="assets/js/page_js/basket.js" src="assets/js/require.js"></script>

https://github.com/requirejs/require...he-main-module
Проверьте...

evgeniy123 10.10.2018 12:31

Цитата:

Сообщение от destus (Сообщение 496072)
evgeniy123,
в доках написано, что можно так
<script>
var require = {
    baseUrl: "assets/js/modules",
    paths: {
        constants: "constants",
        firebase: "firebase/firebase-app",
        firebase_auth: "firebase/firebase-auth",
        firebase_database: "firebase/firebase-database",
        databaseModule: "databaseModule",
        user_entity: "entities/user",
        order_entity: "entities/order"

    },
    callback: function(constants) {

        //console.log(constants.url);
        //console.log("eeee");
    }
};
</script>
<script data-main="assets/js/page_js/basket.js" src="assets/js/require.js"></script>

https://github.com/requirejs/require...he-main-module
Проверьте...


Сделал :) Осталось только понять как сделать агрузку оптимальной .Сейчас приходится

...
<head>
    <meta charset="UTF-8">
    <script data-main="assets/js/modules/config_modules.js" src="assets/js/require.js"></script>

...


Смотрел но так не нашел эффективного и быстро решить такую проблему ..

destus 10.10.2018 12:53

Что за оптимальная загрузка?
Так работает?
<script src="assets/js/modules/config_modules.js"></script>
<script data-main="assets/js/page_js/basket.js" src="assets/js/require.js"></script>

и в config_modules.js
var require = {
    baseUrl: "assets/js/modules",
    paths: {
        constants: "constants",
        firebase: "firebase/firebase-app",
        firebase_auth: "firebase/firebase-auth",
        firebase_database: "firebase/firebase-database",
        databaseModule: "databaseModule",
        user_entity: "entities/user",
        order_entity: "entities/order"

    },
    callback: function(constants) {

        //console.log(constants.url);
        //console.log("eeee");
    }
};

evgeniy123 10.10.2018 14:41

да. Но нужно в header обязательно ставить:
<script src="assets/js/modules/config_modules.js"></script>


Не могу поставить перед </body> оба script


Часовой пояс GMT +3, время: 07:23.