Tags
Upon deploying your node.js app using Travis CI you may encountered a build error that says “This version of node/NAN/v8 requires a C++11 compiler” it means that the current compiler is not capable to build to some node modules like json or time.
See below the log:
Starting with io.js 3 and Node.js 4, building native extensions requires C++11-compatible compiler, which seems unavailable on this VM. Please read https://docs.travis-ci.com/user/languages/javascript-with-nodejs#Node.js-v4-(or-io.js-v3)-compiler-requirements. $ node --version v4.4.5 $ npm --version 2.15.5 $ nvm --version 0.31.0 $ npm install npm WARN deprecated jade@1.9.2: Jade has been renamed to pug, please install the latest version of pug instead of jade npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer > time@0.11.4 install /home/travis/build/sudogem/microblog-express-node/node_modules/time > node-gyp rebuild gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR make: Entering directory `/home/travis/build/sudogem/microblog-express-node/node_modules/time/build' CXX(target) Release/obj.target/time/src/time.o In file included from ../src/time.cc:5:0: ../node_modules/nan/nan.h:43:3: error: #error This version of node/NAN/v8 requires a C++11 compiler
Solution:
In your .travis.yml add the script below:
language: node_js node_js: stable before_install: - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt-get -qq update - sudo apt-get -qq install g++-4.8 env: - CXX=g++-4.8 notifications: ## Here we add a slack notifications once the deployment is completed. Refer to Slack Travis integration slack: mycompany:QW93JOP898JEIQWJDSXW13IOK
If the above script don’t work use this one:
sudo: false env: - CXX=g++-4.8 language: node_js node_js: - "4" addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.8 - g++-4.8
Thats it!
References:
https://github.com/PacificBiosciences/pbdagcon/pull/7
https://github.com/travis-ci/travis-ci/issues/1379
http://stackoverflow.com/questions/22111549/travis-ci-with-clang-3-4-and-c11
Phillip Shipley said:
Thank you, this saved me a bunch of time!
sudogem said:
Welcome Phillip..
Per Lundberg (@perlundberg) said:
Thanks a lot for this! Helped me quite a bit to resolve a similar error I was seeing on Travis. 🙂
sudogem said:
@Per Lundberg You’re most welcome i’m glad it helped.