bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

enb+bem-core: modules is not defined #67

Open KlonD90 opened 10 years ago

KlonD90 commented 10 years ago

Вот такой вот у меня make файл, поставил, заинсталил все в libs npm/bower, но не взлетает js файл, пишет, что modules is not defined, так понимаем, что ym не подключается в начало, хотя объвление i-bem-dom. :( Как его подружить? Уже много способов вроде перепробовали, но ничего не получается.

module.exports = function(config) {
  config.node('pages/index', function(nodeConfig) {
    nodeConfig.addTechs([
      [ require('enb/techs/levels'), { levels: getLevels(config) } ],
      [ require("enb/techs/file-provider"), { target: "?.bemjson.js" } ],
      require("enb/techs/bemdecl-from-bemjson"),
      // [ require('enb/techs/file-provider'), { target: '?.bemdecl.js' } ],
      require('enb-bh/techs/bh-server'),
      require('enb-bh/techs/bh-client'),
      require('enb/techs/deps'),
      require('enb/techs/files'),
      require('enb/techs/css-stylus'),
      require('enb-bh/techs/html-from-bemjson'),
      [ require('enb-diverse-js/techs/browser-js'), { target: '?.pre.js' }],
      [ require('enb-modules/techs/prepend-modules'), { target: '?.js', source: '?.pre.js' }],
      // require('enb/techs/js'),
      // [ require('enb/techs/file-copy'), { sourceTarget: '?.js', destTarget: '_?.js' } ],
      [ require('enb/techs/file-copy'), { sourceTarget: '?.css', destTarget: '_?.css' } ]
    ]);

  nodeConfig.addTargets(['?.html', '?.bemdecl.js', '?.deps.js', '_?.js', '_?.css', ]);

  });
};

function getLevels(config) {
  return [
    {path: 'libs/bem-core/common.blocks', check: false},
    {path: 'libs/bem-core/desktop.blocks', check: false},
    {path: 'libs/bem-components/common.blocks', check: false},
    {path: 'libs/bem-components/desktop.blocks', check: false},
    {path: 'libs/bem-components/design/common.blocks', check: false},
    {path: 'libs/bem-components/design/desktop.blocks', check: false},
    {path: 'common.blocks', check: true},
    {path: 'desktop.blocks', check: true}
  ].map(function(levelPath) { return config.resolvePath(levelPath); });
}
veged commented 10 years ago

cc @andrewblond

blond commented 10 years ago

Судя по конфигу — всё нормально. На всякий случай, очистка кэша (rm -rf .enb/tmp) и перестановка node_modules не помогает?

Ошибка вылетает при сборке или во время выполнения в браузере?

KlonD90 commented 10 years ago

@andrewblohd На уровне браузера.

Решил заодно переустановить библиотеки в bem-core, т.к. выяснил что у меня npm не 2.0.0, а какой-то старый. Что правда закончилось еще печальнее:

npm ERR! peerinvalid The package phantomjs does not satisfy its siblings' peerDependencies requirements!  
npm ERR! peerinvalid Peer mocha-phantomjs@3.5.0 wants phantomjs@~1.9.1
KlonD90 commented 10 years ago

Дофиксил эту ошибку вручную, я так понял, что он воспроизводится у меня потому что что-то криво с определением версии штук поставленных с npm install -g. Но сама по себе проблема осталась с тем что modules is not defined в js файле в браузере. Все компилится но в начало не вставляется ym. ._. Может что не так с позициями?

tadatuta commented 10 years ago

@KlonD90 можешь запушить проект на github, чтобы можно было предметно посмотреть?

KlonD90 commented 10 years ago

@tadatuta: Да конечно. https://github.com/MaximOnline/bem-editor

blond commented 10 years ago

Пригляделся к конфигу повнимательнее: строчка про копирование в _js закомментирована, но при этом требуется _?.js таргет.

Скорее всего вначале ты собрал _?.js без ym, потом закометировал, но в кэше файл остался.

P.S. когда сомневаешься юзай -n опцию: сброс кэша.

KlonD90 commented 10 years ago

Ага разобрался. Я инклюдил какую-то фигню, спасибо.