Nodejs Bcrypt + Heroku fail deploy

后端 未结 3 1033
遥遥无期
遥遥无期 2020-12-18 23:08

i am having problems when i try to do a deployment in heroku. The funny part is this was working three days ago. Also, is working fine in local machine.

The version

相关标签:
3条回答
  • 2020-12-18 23:52

    I got same behaviour for node 8.12 in travis ci since last days.

    Looks like nodejs release new nodejs version 8.12 few days ago and bcrypt don't have prebuild for that version, but their script for build from source fails on linux.

    Also for nodejs 8 recommended to use bcrypt 1.0.3 according their version compatibility.

    Check github issue for more details: https://github.com/kelektiv/node.bcrypt.js/issues/648

    0 讨论(0)
  • 2020-12-19 00:01

    Well I tried the solution by @GMachado and it did not work for me.

    I know this happens because bcrypt requires a native compiler. I used python to compile bcrypt on my local machine but i am not willing to go through this stress when deploying on heroku

    As a quick solution, I unistalled bcrypt then installed bcryptjs, bcryptjs is the pure-javascript version of bcrypt. Just think of it as a light version of bcrypt. While bcrypt requires native compiler to compile, bcryptjs does not. bcrypt is about 1.3 times faster than bcryptjs. thats the major difference.

    First uninstall bcrypt by typing in the command:

    npm uninstall --save bcrypt
    

    Then install bcryptjs by typing in the command

    npm install --save bcryptjs
    

    Afterwards, Navigate to where you have imported bcrypt on your app and change it to

    require("bcryptjs")
    

    the rest of the application should remain the same.

    Go back to deploy on heroku and you should be fine.

    0 讨论(0)
  • 2020-12-19 00:09

    Had the same thing happening to me.

    Node version not specified in package.json

    Try and do what heroku suggest, define the node version you are using on the package.json.

    Get the version you are using for development:

    node --version
    

    Then put it on package.json:

    { "name": "myapp", 
      "description": "a really cool app",  
      "version": "1.0.0", 
      "engines": { 
          "node": "8.9.4" 
       }
    }
    
    0 讨论(0)
提交回复
热议问题