bem-tools / bem-tools-create

bem create command
Other
32 stars 4 forks source link

Подскажите по шаблонам: что я делаю не так? #23

Closed nicothin closed 7 years ago

nicothin commented 7 years ago

http://take.ms/yAQRP

Что я сделал не так? (винда, зависимости проекта ставил вчера)

ilyar commented 7 years ago

Pаботает, если указать полный путь до шаблона:

templates: {
    'css': '/fuelPath/css.js'
},
ilyar commented 7 years ago

Еще вариант, мне он нравится больше, создай файл ~/.bemrc:

module.exports = {
    modules: {
        'bem-tools': {
            plugins: {
                create: {
                    templates: {
                        'css': '/fuelPath/css.js',
                    },
                }
            }
        }
    }
};

Шаблоны будут работать для всех проектов.

Как использовать templateFolder не понял, пробовал по разному, в readme.md тоже не очевидно, надо разбираться, меня пока так устраивает.

nicothin commented 7 years ago

В общем, пока делаю вывод, что шаблоны — малоюзабельная ерунда: использовать их в одном проекте, работая под разными ОС не получится. На винде — вообще не смог завести.

ilyar commented 7 years ago

@nicothin Может быть имеет место баг, опиши желаемый кейс подробнее.

Я вижу в шаблонах много пользы, а еще это же JS можно добавить какое хочешь поведение, при желании, например взять https://github.com/editorconfig/editorconfig-core-js + форматтер.

nicothin commented 7 years ago

Желание: использовать свои шаблоны. Ибо у меня отступ в 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'
ilyar commented 7 years ago

Шаблоны использовать можешь. Отметить надо, что ОС разработчика это окружение, коммитить слеши обратные не верный путь.

Вот рабочий вариант:

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
nicothin commented 7 years ago

@ilyar хранить настройки проекта вне репозитория проекта? )) Я, иногда, не один работаю. И работаю на 2х разных компах. Мне дополнительно синхронизировать настройки придется :)

Подскажите лучше, можно что-то сделать, чтобы заработали шаблоны создания блока?

tadatuta commented 7 years ago

@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;

Есть подозрение, что должно заработать с прямыми слешами.

nicothin commented 7 years ago

@tadatuta чтобы я, и для вас не потестил? ха! да, так на винде отлично работает (и с нормальными слешами).

tadatuta commented 7 years ago

@nicothin, спасибо, запушил фикс: https://github.com/bem-tools/bem-tools-create/pull/24