GolosChain / golos-js

Golos.js the JavaScript API for Golos blockchain
10 stars 8 forks source link

Can't install golos-js #7

Closed melnikaite closed 7 years ago

melnikaite commented 7 years ago

Expected behavior

Installing and requiring npm package golos-js should work for node.js apps.

Actual behavior

  1. Post install script fails
  2. Folder lib is missed

How to reproduce

npm i golos-js

Workaround

git clone git@github.com:GolosChain/golos-js.git

cd golos-js

npm i

const golos = require('../golos-js/lib/index.js');

yaskevich commented 7 years ago

I second that. Current build is broken. Error: Cannot find module 'golos' Tested at Win7, nodejs 8.4.0, npm 5.3.0; Debian 8.8, node 6.11.3, npm 3.10. Build script seems to be not cross-platform.

On1x commented 7 years ago

same

npm install golos-js

1062 error file sh
1063 error code ELIFECYCLE
1064 error errno ENOENT
1065 error syscall spawn
1066 error golos-js@0.5.26 postinstall: `cross-env scripts/post-install.js`
1066 error spawn ENOENT
1067 error Failed at the golos-js@0.5.26 postinstall script.
1067 error This is probably not a problem with npm. There is likely additional logging output above.
1068 verbose exit [ 1, true ]
Losiara commented 7 years ago

В debian stretch тоже самое. Эта ошибка, которая обычно бывает, когда скрипт ноду в переменной среды не находит. Хотя она доступна.

On1x commented 7 years ago

Да зачем там нода? npm install steem работает за секунду и можно пользоваться (ноды на сервере нет). В чем там принципиальное различие?

melnikaite commented 7 years ago

В network id

Losiara commented 7 years ago
1067 error Failed at the golos-js@0.5.26 postinstall script.

Этот послеинсталяционный скрипт начинается со строки #!/usr/bin/env node То есть ищется нода в окружении и запускается скрипт в ней. У меня вылетает с ошибкой что нода не найдена, хотя она есть. В сети куча подобных ошибок и рекомендуют симлинки сделать. Сделал, все равно не помогло.

On1x commented 7 years ago

А мне кажется там ошибка именно в наличии \r после node.

Losiara commented 7 years ago

Это же код "энтера".

On1x commented 7 years ago

Это код перевода корретки в Windows, код энтера: \n

Losiara commented 7 years ago

"Перекодировка" текста не помогла /usr/bin/env: «node\r»: Нет такого файла или каталога

b1acksun commented 7 years ago

Проверил на Windows 10 https://gist.github.com/b1acksun/f05281de7e4ba1e2997179f73bb6507b

Для фикса предлагаю изменить скрипт и добавить в dependencies postinstall-build

Losiara commented 7 years ago

Как это прописать в проектном package.json? При замене скрипта внутри node_modules, он выкачивает из npm и заменяет на старый.

У меня получилось собрать и запустить постинсталляционный скрипт из отдельно склонированного репозитория, но как его добавить в изначальный проект, не пойму. Разве что прямым копированием в node modules новой версии.

b1acksun commented 7 years ago

Обновил скрипт, либа с фиксом доступна через npm версия 0.5.27

On1x commented 7 years ago

@b1acksun пробую ставить конкретно как отдельный модуль nodejs норм, а в global: ошибка.

root@server0 /var/www/nodejs # git clone https://github.com/GolosChain/golos-js.git
Cloning into 'golos-js'...
remote: Counting objects: 3019, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3019 (delta 0), reused 1 (delta 0), pack-reused 3016
Receiving objects: 100% (3019/3019), 10.96 MiB | 2.26 MiB/s, done.
Resolving deltas: 100% (1684/1684), done.
Checking connectivity... done.
root@server0 /var/www/nodejs # ls
golos-js  HiddenEngine
root@server0 /var/www/nodejs # cd golos-js/
root@server0 /var/www/nodejs/golos-js # git checkout v0.5.7
Branch v0.5.7 set up to track remote branch v0.5.7 from origin.
Switched to a new branch 'v0.5.7'
root@server0 /var/www/nodejs/golos-js # git submodule update --init --recursive
root@server0 /var/www/nodejs/golos-js # npm install
npm WARN deprecated babel-preset-es2017@6.24.1: We're really excited that you're trying to use ES2017 syntax, but instead of making more yearly presets, Babel has a better preset that we recommend you use instead: npm install babel-preset-env --save-dev. Give us a follow @babeljs to get more updates
npm WARN lifecycle steem@0.5.7~postinstall: cannot run in wd %s %s (wd=%s) steem@0.5.7 scripts/post-install.js /var/www/nodejs/golos-js
npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated.
npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only.
npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information.
npm WARN lifecycle steem@0.5.7~prepublish: cannot run in wd %s %s (wd=%s) steem@0.5.7 npm run test && npm run build /var/www/nodejs/golos-js
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN The package bluebird is included as both a dev and production dependency.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.2 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 571 packages in 7.688s
root@server0 /var/www/nodejs/golos-js # npm install --global

> steem@0.5.7 postinstall /root/.nvm/versions/node/v8.4.0/lib/node_modules/steem
> scripts/post-install.js

/usr/bin/env: ‘node’: Permission denied
npm ERR! code ELIFECYCLE
npm ERR! errno 126
npm ERR! steem@0.5.7 postinstall: `scripts/post-install.js`
npm ERR! Exit status 126
npm ERR!
npm ERR! Failed at the steem@0.5.7 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2017-09-15T04_03_03_593Z-debug.log
On1x commented 7 years ago

Нашел решение, надо было сделать, после чего сборка прошла успешно.

sudo apt-get install nodejs-legacy
On1x commented 7 years ago

Ветка v0.5.7 стимовская, а мне нужен Голос. Создаю новый issue, слишком много проблем разного плана.