Javascript-форум (https://javascript.ru/forum/)
-   Сборка проекта, утилиты (https://javascript.ru/forum/server-tools/)
-   -   6to5 modules (https://javascript.ru/forum/server-tools/53039-6to5-modules.html)

nerv_ 21.01.2015 00:35

melky, я пытаюсь понять, как это работает :D
Мне от него нужен bundle, насколько я понимаю, чтобы юзать в браузере. Как его получить?

Я понимаю так, что мне нужно указать все файлы, которые будут в пакете (bundle) и это указывается в хэше entry.
Или я заблуждаюсь?

melky 21.01.2015 00:45

Цитата:

Сообщение от nerv_ (Сообщение 352486)
melky, я пытаюсь понять, как это работает :D
Мне от него нужен bundle, насколько я понимаю, чтобы юзать в браузере. Как его получить?

Я понимаю так, что мне нужно указать все файлы, которые будут в пакете (bundle) и это указывается в хэше entry.
Или я заблуждаюсь?

entry - входная точка

ниже - дерево модулей

кружок - начало; входная точка, т.е. entry
параллелограммы - модули вызываются внутри entry файла ( вызов - это require('jquery') )
трапеции - модули цепляются из "параллелограммов"

как работает ? хм... ну он парсит указанные entry файлы на предмет вызова модулей, а затем рекурсивно парсит вызываемые модули на предмет вызова модулей :)

nerv_ 21.01.2015 00:59

melky, ну, пока он ничего не парсит, а шлет меня на х*й в течении последних двух часов :D

https://yadi.sk/i/BP-I6HNAe8GTJ

Чувствую, что буду пробовать browserify)))

melky 21.01.2015 01:04

Цитата:

Сообщение от nerv_ (Сообщение 352490)
melky, ну, пока он ничего не парсит, а шлет меня на х*й в течении последних двух часов :D
https://yadi.sk/i/BP-I6HNAe8GTJ


попробуй указать относительный путь к entry (т.е. относительно файла webpack.config.js)

конкретно в твоем случае это "./httpdocs/js/project.js" (вроде бы)


P.S. непрошенный совет resolve.extensions лучше не правь - это для advanced юзеров ) на скрине вижу, ты забыл про index.js (пустая строка). см доку

Цитата:

Сообщение от nerv_ (Сообщение 352490)
Чувствую, что буду пробовать browserify)))

перебежчик :)

nerv_ 21.01.2015 11:48

Цитата:

Сообщение от melky
опробуй указать относительный путь к entry (т.е. относительно файла webpack.config.js)

у меня весь конфиг в грант-файле

Цитата:

Сообщение от melky
конкретно в твоем случае это "./httpdocs/js/project.js" (вроде бы)

сделал. Уперся в
ERROR in Entry module not found: Error: Cannot resolve module 'script' in %PATH%


Теперь конфиг имеет вид

var path = require('path');

module.exports = function(grunt) {

    grunt.loadNpmTasks('grunt-webpack');

    grunt.initConfig({

        // Read configuration from package.json
        pkg: grunt.file.readJSON('package.json'),

        // webpack
        webpack: {
            // common
            options: {

                entry: './httpdocs/js/project.js',
                output: {
                    //path: path.join(__dirname, 'build'),
                    filename: 'bundle.js'
                },
                module: {
                    loaders: [
                        {test: /\.js$/, loader: 'script'}
                    ]
                }
            },
            start: {

            }
        }

    });

    grunt.registerTask('default', ['webpack:start']);
};


Цитата:

Сообщение от melky
P.S. непрошенный совет resolve.extensions

удалил

Цитата:

Сообщение от melky
перебежчик

не, я был бы им, если использовал веб-пак. Мне его даже запустить не удалось)

Gozar 21.01.2015 14:13

Цитата:

Сообщение от nerv_
module: {
	                    loaders: [
	                        {test: /\.js$/, loader: 'script'}
	                    ]
	                }

У меня:
module: {
        loaders: [
            {test: /\.js$/, loader: '6to5'}
        ]
    }

6to5 это сборщик, у тебя какой-то script <- это у тебя сборщик такой?

из package.json:
"devDependencies": {
      "6to5": "^2.13.1",
      "6to5-loader": "^2.0.0",
      "grunt": "^0.4.5",
      "grunt-webpack": "^1.0.8",
      "webpack": "^1.5.1",
      "webpack-dev-server": "^1.7.0"
    }

nerv_ 21.01.2015 14:26

Gozar, ага, я тоже на это думал. Но, поскольку в данный момент я запускаю веб-пак без необходимости конвертации из es6 в es5, то, как я думал, в моем случае загрузчик должен быть другим (обычным).

Закомментил
//{test: /\.js$/, loader: '6to5'}

сборка завершилась успешно :dance:

Спасибо :)

nerv_ 21.01.2015 15:18

Отложил в сторону webpack, поставил browserify, собрал bundle.js.

Мне просто нужен глобальный синхронный (на первое время) require. Насколько я понимаю, require доступен только внутри bundle. Как его вытащить наружу и возможно ли это?

<script src="/js/bootstrap.js"></script>

<script>
    <!-- тут ошибка require is undefined -->
    require('/js/native/plugins/core.js');
</script>


Спасибо.

melky 21.01.2015 16:40

Цитата:

Сообщение от nerv_
ERROR in Entry module not found: Error: Cannot resolve module 'script' in %PATH%

`script-loader` установлен?
Gozar, уже в теме :)
Цитата:

Сообщение от nerv_
Gozar, ага, я тоже на это думал. Но, поскольку в данный момент я запускаю веб-пак без необходимости конвертации из es6 в es5, то, как я думал, в моем случае загрузчик должен быть другим (обычным).

тогда можно его вообще вырубить (загрузчик на js файлы)
Цитата:

Сообщение от nerv_
Мне просто нужен глобальный синхронный (на первое время) require. Насколько я понимаю, require доступен только внутри bundle. Как его вытащить наружу и возможно ли это?

шото странное ты делаешь :)

Gozar 21.01.2015 16:53

Цитата:

Сообщение от melky
Gozar, уже в теме

:)

nerv_,
Не спеши, разложи в голове по полочкам.


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