Closed nicothin closed 7 years ago
Pаботает, если указать полный путь до шаблона:
templates: {
'css': '/fuelPath/css.js'
},
Еще вариант, мне он нравится больше, создай файл ~/.bemrc:
module.exports = {
modules: {
'bem-tools': {
plugins: {
create: {
templates: {
'css': '/fuelPath/css.js',
},
}
}
}
}
};
Шаблоны будут работать для всех проектов.
Как использовать templateFolder
не понял, пробовал по разному, в readme.md
тоже не очевидно, надо разбираться, меня пока так устраивает.
В общем, пока делаю вывод, что шаблоны — малоюзабельная ерунда: использовать их в одном проекте, работая под разными ОС не получится. На винде — вообще не смог завести.
@nicothin Может быть имеет место баг, опиши желаемый кейс подробнее.
Я вижу в шаблонах много пользы, а еще это же JS можно добавить какое хочешь поведение, при желании, например взять https://github.com/editorconfig/editorconfig-core-js + форматтер.
Желание: использовать свои шаблоны. Ибо у меня отступ в 2 пробела и LF-строки (хотя я и в винде). Плюс, может оказаться полезным добавлять что-то в шаблон, к примеру, в препроцессорные файлы добавлять импорты файлов с общими переменными проекта или комменты.
https://github.com/nicothin/test_gulp-bem/tree/add-project-stub--templates — ветка с попыткой (и фейлом)
Даже если это в созданном мной сейчас виде заработает, оно будет малоюзабельно, ибо https://github.com/nicothin/test_gulp-bem/commit/5bc1e095dbbe6702ad2235573ffe433e7130055e#diff-eab13dbc16d84c282da4d6469012915eR22 — путь указан с обратными слешами (винда же). Если использовать обычные слеши, выпадает с ошибкой:
nicothin@nicwin10 MINGW64 /d/projects/test_gulp-bem (add-project-stub--templates)
$ node_modules/.bin/bem create -l common.blocks/ -b test-1 -T css
(node:4052) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Cannot find module '.bem\templates\css.js'
Шаблоны использовать можешь. Отметить надо, что ОС разработчика это окружение, коммитить слеши обратные не верный путь.
Вот рабочий вариант:
projects/
├── .bem-files (шаблоны для всех проектов)
│ ├── bemhtml.js
│ ├── css.js
│ ├── deps.js
│ ├── deps_simple.js
│ ├── i-bem.js
│ └── post.css.js
├── .bemrc (общая конфигурация для всех проектов)
├── project1
│ ├── .bem-files
│ │ └── deps.js (шаблон *.deps.ja для project1)
│ ├── .bemrc
│ └── project-stub
└── project2
├── .bem-files
│ └── css.js (переопределяем шаблон *.deps.ja для project1)
├── .bemrc
└── project-stub
@ilyar хранить настройки проекта вне репозитория проекта? )) Я, иногда, не один работаю. И работаю на 2х разных компах. Мне дополнительно синхронизировать настройки придется :)
Подскажите лучше, можно что-то сделать, чтобы заработали шаблоны создания блока?
@nicothin Можешь, пожалуйста, проверить на винде вот такой патч для bem-tools-create
:
diff --git a/lib/template.js b/lib/template.js
index e593654..235cd44 100644
--- a/lib/template.js
+++ b/lib/template.js
@@ -17,7 +17,7 @@ module.exports = function getTemplate(tech, options) {
if (!templatePath) {
for (var i = 0; i < possiblePaths.length; i++) {
- var possibleTemplatePath = path.join(possiblePaths[i], techId + '.js');
+ var possibleTemplatePath = path.resolve(possiblePaths[i], techId + '.js');
if (fs.existsSync(possibleTemplatePath)) {
templatePath = possibleTemplatePath;
Есть подозрение, что должно заработать с прямыми слешами.
@tadatuta чтобы я, и для вас не потестил? ха! да, так на винде отлично работает (и с нормальными слешами).
@nicothin, спасибо, запушил фикс: https://github.com/bem-tools/bem-tools-create/pull/24
http://take.ms/yAQRP
Что я сделал не так? (винда, зависимости проекта ставил вчера)