Всем привет. На прошлой неделе обновил node.js до 5.8 и после этого похоже перестала ставиться bem-core. Я вообще ноль в node.js, но приходится с ним работать =( пытаясь разобраться в БЭМ
Для начала создал пустую директорию, куда по инструкции установки bem-core ошибки возникают в пунктах 3 и 4
3) alexander@achtung-PC:~/DeveloperWorkspace/WEB_BEM_PHP/bem-core$ npm run deps npm ERR! Linux 4.2.0-30-generic npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "deps" npm ERR! node v5.8.0 npm ERR! npm v3.7.3
npm ERR! missing script: deps npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! https://github.com/npm/npm/issues
npm ERR! Please include the following file with any support request: npm ERR! /home/alexander/DeveloperWorkspace/WEB_BEM_PHP/bem-core/npm-debug.log
4) alexander@achtung-PC:~/DeveloperWorkspace/WEB_BEM_PHP/bem-core$ npm test
bem-core@2.9.0 test /home/alexander/DeveloperWorkspace/WEB_BEM_PHP/bem-core npm run lint && npm run test-all
bem-core@2.9.0 lint /home/alexander/DeveloperWorkspace/WEB_BEM_PHP/bem-core jshint-groups && jscs .
module.js:341 throw err; ^
Error: Cannot find module 'jshint'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.
npm ERR! Linux 4.2.0-30-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "lint"
npm ERR! node v5.8.0
npm ERR! npm v3.7.3
npm ERR! code ELIFECYCLE
npm ERR! bem-core@2.9.0 lint: jshint-groups && jscs .
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bem-core@2.9.0 lint script 'jshint-groups && jscs .'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bem-core package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! jshint-groups && jscs .
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs bem-core
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls bem-core
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request: npm ERR! /home/alexander/DeveloperWorkspace/WEB_BEM_PHP/bem-core/npm-debug.log npm ERR! Test failed. See above for more details.
Судя по сообщению об ошибке, не были установлены npm-зависимости (либо были установлены не все). Стоит попробовать повторить
npm install
в корне.Но вообще говоря, единственная причина, когда это может понадобиться — это участие в разработке
bem-core
, для использованияbem-core
в своем собственном проекте этого делать не нужно.Самый простой способ использовать — это склонировать project-stub. Описание по установке и использованию есть на bem.info: https://ru.bem.info/tutorials/project-stub/
@tadatuta Владимир, спасибо. О таком репозитории знаю, но пока мне кажется проще с методологией разобраться устанавливая по частям, чтобы понимать какой модуль для чего необходим.
npm install
я точно делал, мне выдало такие предупреждения, но решил проигнорировать и попытаться пойти дальше. Сейчас повторил, в общем то же самоеalexander@achtung-PC:~/DeveloperWorkspace/WEB_BEM_PHP/bem-core$ npm install npm WARN enb-bem-docs@0.11.0 requires a peer of enb-magic-factory@>= 0.3.0 < 1.0.0 but none was installed. npm WARN enb-bem-examples@0.6.0 requires a peer of enb-magic-factory@>= 0.3.0 < 1.0.0 but none was installed. npm WARN enb-bem-specs@0.8.0 requires a peer of enb-magic-factory@>= 0.3.0 < 1.0.0 but none was installed. npm WARN enb-bem-tmpl-specs@0.16.1 requires a peer of enb-magic-factory@>= 0.3.0 < 1.0.0 but none was installed. npm WARN enb-magic-platform@0.6.0 requires a peer of enb-magic-factory@>= 0.4.0 < 1.0.0 but none was installed. npm WARN jshint-groups@0.8.0 requires a peer of jshint@>=2.1.10 <3 but none was installed.
В данном случае не совсем так. Дело в том, что сборка внутри
bem-core
предназначена именно для разработки самой библиотекиbem-core
— это принципиально другая история по сравнению с разработкой типичного проекта.@tadatuta скачал project-stub и делаю по инструкции. при попытке enb make лезет ошибка
Error: Cannot find module 'enb-stylus/techs/css-stylus' at Function.Module._resolveFilename (module.js:339:15) at Function.Module._load (module.js:290:25) at Module.require (module.js:367:17) at require (internal/module.js:16:19) at Object. (/home/alexander/DeveloperWorkspace/WEB_BEM_PHP_Yandex/.enb/make.js:10:20)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
Начал искать в интернете, интернет вывел на статью. Сделал как в статье, т.е. использовал
git clone https://github.com/bem/project-stub.git pr-stub-test && cd pr-stub-test && npm i && enb make
Всё сделалось, собралось как написано в команде. Но вот как только сам пишу
enb make
повторно выдаётся снова та же ошибка@tadatuta а если пишу bem make, то такое дело
проблема явно происходит в процессе
npm install
нужен полный вывод после этой коммандыи еще не помешает вывод от
@tadatuta Владимир, кажется разобрался - мой косяк.
Сегодня проделал всё повторно с нуля - заработало сразу. Есть предположение, что это было связано с тем, что после
clone https://github.com/bem/project-stub.git
я из созданной автоматически папки/home/alexander/DeveloperWorkspace/WEB_BEM_PHP_Yandex/project-stub
копирую всё на уровень выше, а папкуproject-stub
удалял, но при этом то ли забывал копировать скрытые папки, то ли надо было повторно после перемещения делатьnpm install
В общем заработало, искренне благодарю за помощь!