Использование RequireJS с узлом для оптимизации создания одного выходного файла не включает все необходимые файлы.

Я использую FayeJS, и последняя версия была изменена для использования RequireJS, поэтому больше нет ни одного файл для ссылки в браузере. Вместо этого структура выглядит следующим образом:

/adapters
/engines
/mixins
/protocol
/transport
/util
faye_browser.js

Я использую следующий скрипт сборки nodejs, чтобы попытаться свести все вышеперечисленное в один файл:

var fs = require('fs-extra'),
    requirejs = require('requirejs');

var config = {
    baseUrl: 'htdocs/js/dev/faye/'
    ,name: 'faye_browser'
    , out: 'htdocs/js/dev/faye/dist/faye.min.js'
    , paths: {
        dist: "empty:"
    }
    ,findNestedDependencies: true
};

requirejs.optimize(config, function (buildResponse) {
    //buildResponse is just a text output of the modules
    //included. Load the built file for the contents.
    //Use config.out to get the optimized file contents.
    var contents = fs.readFileSync(config.out, 'utf8');
}, function (err) {
    //optimization err callback
    console.log(err);
});

Содержимое faye_browser.js:

'use strict';

var constants = require('./util/constants'),
    Logging   = require('./mixins/logging');

var Faye = {
  VERSION:    constants.VERSION,

  Client:     require('./protocol/client'),
  Scheduler:  require('./protocol/scheduler')
};

Logging.wrapper = Faye;

module.exports = Faye;

Насколько я понимаю, оптимизатор должен извлекать необходимые файлы, а затем, если в этих файлах есть требуемые файлы, он должен извлекать эти и т. д. и выводить один минимизированный faye.min.js, который содержит все, рефакторинг, поэтому дополнительные вызовы на стороне сервера не требуются.

Что происходит, так это то, что faye.min.js создается, но содержит только содержимое faye_browser.js, ни один из других необходимых файлов не включается.

Я искал по всему Интернету и просмотрел кучу разных примеров, и ни один из них не работает для меня.

Что я здесь делаю неправильно?


person user2109254    schedule 01.09.2018    source источник


Ответы (1)


Для всех, кто пытается это сделать, я не понимаю, что на странице загрузки написано:

Версия Node.js доступна через npm. Этот пакет содержит копию клиента браузера, который обслуживается сервером Faye во время работы.

Итак, чтобы получить его, вам нужно вытащить код через NPM, а затем перейти в каталог установки NPM, и он находится в каталоге «клиент» …

person user2109254    schedule 02.09.2018