Open vaseker opened 10 years ago
Речь про сборку на основе project-stub или это кастомный конфиг? Если первое, то у меня не воспроизводится, а если второе, то было бы круто взглянуть на конфиг.
Конфиг кастомный.
module.exports = function (config) {
config.setLanguages(['ru']);
config.nodes('desktop.bundles/*');
config.mode('development', function () {
config.nodeMask(/desktop.bundles\/.*/, function (nodeConfig) {
nodeConfig.addTechs([
[ require('./enb/techs/priv'), { mode: 'development' } ],
[ require('./enb/techs/bh-server'), { mode: 'development' } ],
[ require('enb/techs/file-copy'), { sourceTarget: '?.{lang}.js', destTarget: '_?.{lang}.js' } ],
[ require('enb/techs/file-copy'), { sourceTarget: '?.bh.js', destTarget: '_?.bh.js' } ],
[ require('enb/techs/file-copy'), { sourceTarget: '?.css', destTarget: '_?.css' } ]
]);
});
});
config.mode('production', function () {
config.nodeMask(/desktop.bundles\/.*/, function (nodeConfig) {
nodeConfig.addTechs([
[ require('./enb/techs/priv'), { mode: 'production' } ],
[ require('./enb/techs/bh-server'), { mode: 'production' } ],
[ require('enb/techs/borschik'), { sourceTarget: '?.{lang}.js', destTarget: '_?.{lang}.js', minify: true, freeze: true } ],
[ require('enb/techs/borschik'), { sourceTarget: '?.bh.js', destTarget: '_?.bh.js', minify: true, freeze: true } ],
[ require('enb/techs/borschik'), { sourceTarget: '?.css', destTarget: '_?.css', minify: true, freeze: true } ]
]);
});
});
config.nodeMask(/desktop.bundles\/.*/, function (nodeConfig) {
function getLevels() {
return [
{ path: 'vendors/bem-core/common.blocks', check: false },
{ path: 'vendors/bem-core/desktop.blocks', check: false },
{ path: 'common.blocks', check: true },
{ path: 'desktop.blocks', check: true }
].map(function (l) { return config.resolvePath(l); });
}
nodeConfig.addTechs([
[ require('enb/techs/levels'), { levels: getLevels() } ],
[ require('enb/techs/file-provider'), { target: '?.bemdecl.js' } ],
require('enb/techs/deps-old'),
require('enb/techs/files'),
[ require('./enb/techs/priv-i18n'), { lang: '{lang}' } ],
[ require('enb/techs/i18n-merge-keysets'), { lang: 'all' } ],
[ require('enb/techs/i18n-merge-keysets'), { lang: '{lang}' } ],
[ require('enb/techs/i18n-lang-js'), { lang: 'all' } ],
[ require('enb/techs/i18n-lang-js'), { lang: '{lang}' } ],
[ require('enb/techs/js-i18n'), { lang: '{lang}', target: '?.{lang}.pre.js' } ],
[ require('enb/techs/bemdecl-from-deps-by-tech'), { target: '?.client.bemdecl.js', sourceTech: 'js', destTech: 'bemhtml' } ],
[ require('enb/techs/deps-old'), { bemdeclTarget: '?.client.bemdecl.js', depsTarget: '?.client.deps.js' } ],
[ require('enb/techs/files'), { filesTarget: '?.client.files', dirsTarget: '?.client.dirs', depsTarget: '?.client.deps.js' } ],
[ require('enb-bh/techs/bh-client'), { filesTarget: '?.client.files', target: '?.client.bh.js' } ],
[ require('./enb/techs/priv-client'), { filesTarget: '?.client.files', target: '?.client.priv.js' } ],
[ require('enb/techs/file-merge'), { sources: ['?.client.priv.js', '?.client.bh.js'], target: '?.bh.js' } ],
[ require('enb-modules/techs/prepend-modules'), {
target: '?.{lang}.js',
source: '?.{lang}.pre.js'
} ],
require('enb/techs/css')
]);
nodeConfig.addTargets([
'?.priv.{lang}.js',
'?.bemhtml.js',
'_?.bh.js',
'_?.{lang}.js',
'_?.css'
]);
});
};
В bem-core
клиентский JavaScript лежит не только в файлах с js
суффиксами, но и в vanilla.js
и browser.js
.
enb/techs/js-i18n
технология по умолчанию собирает файлы только с js
суффиксами, поэтому нужно добавить опцию sourceSuffixes
чтобы в сборку попадали все файлы.
[ require('enb/techs/js-i18n'), {
lang: '{lang}', target: '?.{lang}.pre.js' },
sourceSuffixes: ['vanilla.js', 'browser.js', 'js']
],
@andrewblond, спасибо! Все заработало.
Переоткрою issue, чтобы пост отображался на форуме.
@tavriaforever Коля, нам нужно добавить в список приоритетных задачу от @zxqfox про возможность закрывать issues без того, чтобы они исчезали с форума.
@tadatuta :smiling_imp:
ок, запланировал на ближайшие релизы
Подскажите, пожалуйста, как победить сабж?
Сборка без кэша не ломается, однако i-bem не объявляется в клиентском js.
bem-core@2.4.0
https://yadi.sk/i/SCC4Kh0kc9ULq