bem / project-stub

deps
314 stars 199 forks source link

Проблемы установки из коробки #73

Closed pavelpower closed 9 years ago

pavelpower commented 10 years ago

Так, как большинство технологий используемых в данном проекте нет у большинства разработчиков, которые хотят попробовать на зубок, просто нет. То нужно учитывать это.

Я дал задание двум бойцам попробовать этот проект и они столкнулись с проблемами, которые решались только так:

git clone https://github.com/bem/project-stub.git -b bem-core my-bem-project
cd my-bem-project
npm install
npm install stylus -g
npm install bower -g
npm install travis-ci # not necessarily
npm install q-io
cd libs/bem-components && npm install && bower install
cd ../bem-core &&  && npm install && bower install
  1. run server bem server -p 8080 -v debug

@arikon Подсказал, что с установкой должен помочь bower-npm-install пакет. Но его нет в основных зависимостях. И людям не ведомо за него.

dab commented 10 years ago

А можешь рассказать подробнее про проблемы, с которыми они столкнулись? Я попробовал воспроизвести клонирование и запуск project-stub, все получилось, библиотеки устанавливаются и сервер запускается.

pavelpower commented 10 years ago

А вот у них скачалось, сразу потребовался bower потом stylus потом ещё чего-то. Напишу с компании по подробнее 14.10.2014 14:36 пользователь "Dima Belitsky" notifications@github.com написал:

А можешь рассказать подробнее про проблемы, с которыми они столкнулись? Я попробовал воспроизвести клонирование и запуск project-stub, все получилось, библиотеки устанавливаются и сервер запускается.

— Reply to this email directly or view it on GitHub https://github.com/bem/project-stub/issues/73#issuecomment-59020437.

tadatuta commented 10 years ago

bower, stylus и другие пакеты действительно нужны, но они все должны установиться с помощью одного вызова npm i, т.к. в корне проекта лежит https://github.com/bem/project-stub/blob/bem-core/package.json#L15, где описаны все зависимости.

awinogradov commented 10 years ago

Я так понимаю, что пакеты не встают глобально, а их пытаются позвать. Вероятно чтобы вообще без телодвижений, надо звать пакеты так

$: node_modules/.bin/stylus
pavelpower commented 10 years ago

Коллеги, тоды надо изменить описание установки. Я вот смотрю есть такое:

"scripts": {
    "postinstall": "bower-npm-install",
    "deps": "bower-npm-install --non-interactive"
  },

Можно ведь и дополнить этот раздел.

tadatuta commented 10 years ago

@pavelpower что именно хочется изменить? речь о том, чтобы описать, что происходит на пост-инсталл в тексте ридми?

just-boris commented 10 years ago

Кажется, у меня проблема по адресу. Склонировал проект, сделал npm install, все ок. Запускаю  bem make и вижу что-то типа

23:41:46.776 - info: Server is listening on port 8080. Point your browser to http://localhost:8080/
23:41:50.756 - info: [i] Going to build 'desktop.bundles*' [1]
23:41:51.152 - info: [i] Going to build 'desktop.bundles/index*' [2]
23:41:51.184 - warn: Level at /Users/just-boris/coding/test-proj/desktop.bundles/index/blocks is not a directory
23:41:51.219 - info: [i] Going to build 'desktop.bundles/index' [3]
23:41:51.257 - info: [t] isValid() time for "desktop.bundles/index/index.bemdecl.js" [3]: 2ms
23:41:51.259 - info: [t] isValid() time for "desktop.bundles/index/index.deps.js" [3]: 1ms
23:41:51.260 - info: [*] make 'desktop.bundles/index/index.deps.js' [3]
23:41:51.337 - warn: Tech module with path '/Users/just-boris/coding/test-proj/libs/bem-core/libs/bem-pr/bem/techs/spec.js.js' not found on require search paths
23:41:51.338 - warn: Tech module with path '/Users/just-boris/coding/test-proj/libs/bem-core/libs/bem-pr/bem/techs/spec.js+browser.js+bemhtml.js' not found on require search paths
23:41:51.339 - warn: Tech module with path '/Users/just-boris/coding/test-proj/libs/bem-core/libs/bem-pr/bem/techs/spec.bemjson.js.js' not found on require search paths
23:41:51.408 - warn: Tech module with path '/Users/just-boris/coding/test-proj/libs/bem-core/libs/bem-pr/bem/techs/spec.js.js' not found on require search paths
23:41:51.409 - warn: Tech module with path '/Users/just-boris/coding/test-proj/libs/bem-core/libs/bem-pr/bem/techs/spec.js+browser.js+bemhtml.js' not found on require search paths
23:41:51.410 - warn: Tech module with path '/Users/just-boris/coding/test-proj/libs/bem-core/libs/bem-pr/bem/techs/spec.bemjson.js.js' not found on require search paths

Попробовал совет топик-стартера — не помог. На странице http://localhost:8080/desktop.bundles/index получаю

GET http://localhost:8080/desktop.bundles/_index.css 404 (Not Found)
GET http://localhost:8080/desktop.bundles/_index.js 404 (Not Found) 
voischev commented 10 years ago

@just-boris попробуй http://localhost:8080/desktop.bundles/index/index.html

just-boris commented 10 years ago

@voischev помогло, проблема из-за недостающего trailing slash, спасибо. Но warning по-прежнему в консоли и немного настораживает. Это нормально?

voischev commented 10 years ago

@just-boris живу с ними много месяцев :) Кажется уже не замечаю их

DChinin commented 10 years ago

Нашел причину проблемы.

После npm install получаю такой лог:

npm WARN engine hawk@0.10.2: wanted: {"node":"0.8.x"} (current: {"node":"0.10.32","npm":"1.4.28"})
npm WARN engine cryptiles@0.1.3: wanted: {"node":"0.8.x"} (current: {"node":"0.10.32","npm":"1.4.28"})
npm WARN engine hoek@0.7.6: wanted: {"node":"0.8.x"} (current: {"node":"0.10.32","npm":"1.4.28"})
npm WARN engine sntp@0.1.4: wanted: {"node":"0.8.x"} (current: {"node":"0.10.32","npm":"1.4.28"})
npm WARN engine boom@0.3.8: wanted: {"node":"0.8.x"} (current: {"node":"0.10.32","npm":"1.4.28"})
npm WARN cannot run in wd bem-project-stub@1.0.0 bower-npm-install (wd=/home/denis/Projects/start-pretty-project)

Судя по последней строке bower-npm-install не запускается, поэтому bem make валит ошибку при поиске технологий. Происходит все из-за того, что на Ubuntu npm install запрашивает права суперпользователя:

npm ERR! Error: EACCES, mkdir '/home/denis/.npm/qs/2.3.2'
npm ERR!  { [Error: EACCES, mkdir '/home/denis/.npm/qs/2.3.2']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/home/denis/.npm/qs/2.3.2',
npm ERR!   parent: 'request' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

А при выполнении postinstall NPM пытается понизить права пользователя, из-за чего и возникает такая проблема. Более подробно о проблеме прав пользователей при postinstall https://github.com/npm/npm/issues/3497

tadatuta commented 10 years ago

@DenisChinin предположу, что может помочь sudo chown -Rwhoami/home/denis/

DChinin commented 10 years ago

@tadatuta это тогда лучше добавить в описание установки. С этой проблемой могут другие пользователи Ubuntu и OSX столкнуться, так как заметить, что не выполнился postinstall очень тяжело.

tadatuta commented 10 years ago

@DenisChinin это не что-то специфичное для project-stub, потенциально такая же проблема возникнет и для других пакетов, если ~/.npm принадлежит руту

voischev commented 10 years ago

@tadatuta +1 )

pavelpower commented 10 years ago

@tadatuta

что именно хочется изменить? речь о том, чтобы описать, что происходит на пост-инсталл в тексте ридми?

на ум приходит добавить в раздел: https://github.com/bem/project-stub#installation

npm run postinstall
tadatuta commented 9 years ago

@innabelaya Инна, давай добавим в quick start предупреждение, что не стоит устанавливать npm- и bower-пакеты под root?

just-boris commented 9 years ago

@tadatuta FYI, bower из-под root не запускается: https://github.com/bower/bower/blob/master/lib/util/rootCheck.js#L24

tadatuta commented 9 years ago

@just-boris для этого есть флаг --allow-root, но да, речь как раз о том, чтобы не рекомендовать пользователям такой способ