Upgrade from 1.8.1 to 1.8.2 failed
-
I'm not sure if I agree with npm's idea of package management:
% npm r heapdump npm ERR! Linux 2.6.32-696.18.7.el6.x86_64 npm ERR! argv "/package/host/localhost/nodejs-6.13.1/bin/node" "/package/host/localhost/nodejs-6/bin/npm" "r" "heapdump" npm ERR! node v6.13.1 npm ERR! npm v3.10.10 npm ERR! path /home/curv/tmp/nodebb/node_modules/nodebb-plugin-write-api npm ERR! code EISGIT npm ERR! git /home/curv/tmp/nodebb/node_modules/nodebb-plugin-write-api: Appears to be a git repo or submodule. npm ERR! git /home/curv/tmp/nodebb/node_modules/nodebb-plugin-write-api npm ERR! git Refusing to remove it. Update manually, npm ERR! git or move it out of the way first. npm ERR! Please include the following file with any support request: npm ERR! /home/curv/tmp/nodebb/npm-debug.log
WTF?
However, since this is a test folder anyway, I just removed the plugin, did the
npm r heapdump && npm cache clean
, removed "heapdump" frompackage.json
, checked if it is referenced in any other module (it is not), checked if the directorynode_modules/heapdump
doesn't exist anymore (it didn't) and executednpm i
afterwards.It seems that it updated all the required modules, it displayed the long final tree. But in the end, there were still compiling errors and it finishes with:
npm ERR! Linux 2.6.32-696.18.7.el6.x86_64 npm ERR! argv "/package/host/localhost/nodejs-6.13.1/bin/node" "/package/host/localhost/nodejs-6/bin/npm" "i" npm ERR! node v6.13.1 npm ERR! npm v3.10.10 npm ERR! code ELIFECYCLE npm ERR! [email protected] install: `node-gyp rebuild` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'. 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 heapdump package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-gyp rebuild npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs heapdump npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls heapdump npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! /home/curv/tmp/nodebb/npm-debug.log
Compiler errors are the same, I'm not going to post them again.
-
Oh, I just found the module:
/home/curv/.npm/heapdump/0.3.7
it's installed within my home directory as well!I removed it and repeated the above procedure to no avail
Next, I looked where
heapdump
is being referenced and foundnpm-shrinkwrap.json
from where I removed it as well.Repeat the procedure. No more "heapdump" errors, but still no success and lots of compiler errors, here's the end of it:
[..] ../node_modules/nan/nan.h:1598: error: no matching function for call to ‘NanAssignPersistent(v8::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >&, v8::Local<v8::Object>&)’ ../node_modules/nan/nan.h: In member function ‘virtual void NanAsyncWorker::HandleOKCallback()’: ../node_modules/nan/nan.h:1648: error: ‘class NanCallback’ has no member named ‘Call’ ../node_modules/nan/nan.h: In member function ‘virtual void NanAsyncWorker::HandleErrorCallback()’: ../node_modules/nan/nan.h:1657: error: ‘class NanCallback’ has no member named ‘Call’ ../node_modules/nan/nan.h: At global scope: ../node_modules/nan/nan.h:1957: error: ‘Handle’ is not a member of ‘v8’ ../node_modules/nan/nan.h:1957: error: expected primary-expression before ‘>’ token ../node_modules/nan/nan.h:1957: error: ‘val’ was not declared in this scope ../node_modules/nan/nan.h:1958: error: expected primary-expression before ‘const’ ../node_modules/nan/nan.h:1959: error: expected primary-expression before ‘*’ token ../node_modules/nan/nan.h:1959: error: ‘len’ was not declared in this scope ../node_modules/nan/nan.h:1960: error: initializer expression list treated as compound expression ../node_modules/nan/nan.h:1960: error: expected ‘,’ or ‘;’ before ‘{’ token ../node_modules/nan/nan.h:1957: warning: ‘_NanGetExternalParts’ defined but not used make: *** [Release/obj.target/validation/src/validation.o] Error 1 make: Leaving directory `/home/curv/tmp/nodebb/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/package/host/localhost/nodejs-6.13.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:191:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:219:12) gyp ERR! System Linux 2.6.32-696.18.7.el6.x86_64 gyp ERR! command "/package/host/localhost/nodejs-6.13.1/bin/node" "/package/host/localhost/nodejs-6.13.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/curv/tmp/nodebb/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate gyp ERR! node -v v6.13.1 gyp ERR! node-gyp -v v3.4.0 gyp ERR! not ok [email protected] node_modules/console-control-strings -> node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/console-control-strings [email protected] node_modules/gauge -> node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge [email protected] node_modules/set-blocking -> node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/set-blocking [email protected] node_modules/readable-stream -> node_modules/npm/node_modules/npm-registry-client/node_modules/readable-stream [email protected] node_modules/are-we-there-yet -> node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/are-we-there-yet [email protected] /home/curv/tmp/nodebb └─┬ [email protected] └─┬ [email protected] └─┬ [email protected] └─┬ [email protected] └─┬ [email protected] └── [email protected] npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/bufferutil): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/utf-8-validate): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
Now what?
-
Have you tried deleting the shrinkwrap file and the package lock file?
-
different errors:
[..] ../../nan/nan.h:1550: error: ISO C++ forbids declaration of ‘Handle’ with no type ../../nan/nan.h:1550: error: invalid use of ‘::’ ../../nan/nan.h:1550: error: expected ‘;’ before ‘<’ token ../../nan/nan.h:1588: error: expected ‘;’ before ‘}’ token ../../nan/nan.h: In constructor ‘NanCallback::NanCallback()’: ../../nan/nan.h:1481: error: no matching function for call to ‘NanAssignPersistent(v8::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >&, v8::Local<v8::Object>&)’ ../../nan/nan.h: In constructor ‘NanAsyncWorker::NanAsyncWorker(NanCallback*)’: ../../nan/nan.h:1598: error: no matching function for call to ‘NanAssignPersistent(v8::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >&, v8::Local<v8::Object>&)’ ../../nan/nan.h: In member function ‘virtual void NanAsyncWorker::HandleOKCallback()’: ../../nan/nan.h:1648: error: ‘class NanCallback’ has no member named ‘Call’ ../../nan/nan.h: In member function ‘virtual void NanAsyncWorker::HandleErrorCallback()’: ../../nan/nan.h:1657: error: ‘class NanCallback’ has no member named ‘Call’ ../../nan/nan.h: At global scope: ../../nan/nan.h:1957: error: ‘Handle’ is not a member of ‘v8’ ../../nan/nan.h:1957: error: expected primary-expression before ‘>’ token ../../nan/nan.h:1957: error: ‘val’ was not declared in this scope ../../nan/nan.h:1958: error: expected primary-expression before ‘const’ ../../nan/nan.h:1959: error: expected primary-expression before ‘*’ token ../../nan/nan.h:1959: error: ‘len’ was not declared in this scope ../../nan/nan.h:1960: error: initializer expression list treated as compound expression ../../nan/nan.h:1960: error: expected ‘,’ or ‘;’ before ‘{’ token ../../nan/nan.h:1957: warning: ‘_NanGetExternalParts’ defined but not used make: *** [Release/obj.target/validation/src/validation.o] Error 1 make: Leaving directory `/home/curv/tmp/nodebb/node_modules/utf-8-validate/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/package/host/localhost/nodejs-6.13.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:191:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:219:12) gyp ERR! System Linux 2.6.32-696.18.7.el6.x86_64 gyp ERR! command "/package/host/localhost/nodejs-6.13.1/bin/node" "/package/host/localhost/nodejs-6.13.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/curv/tmp/nodebb/node_modules/utf-8-validate gyp ERR! node -v v6.13.1 gyp ERR! node-gyp -v v3.4.0 gyp ERR! not ok [email protected] /home/curv/tmp/nodebb └─┬ [email protected] └── [email protected] (git://github.com/wzrdtales/simple-recaptcha.git#f408725106872df696436ff6a988923539ab80a6) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/bufferutil): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/utf-8-validate): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
-
@tlinden I have no idea why you're getting errors like that. But if you're going to paste errors, make you you provide the whole output, not just some of it.
-
well, its many dozen pages of output everytime.
-
Oh boy... what a error
If you are seeing weird npm errors, remember to delete
npm-shrinkwrap.json
,package-lock.json
, as well as clearing cache and such.Double-check your package.json to make sure it doesn't require node-gyp or heapdump, we shouldn't require those.
Honestly if all else fails... install yarn, set
package_manager
inconfig.json
toyarn
, and thenyarn
... -
If you are seeing weird npm errors, remember to delete
npm-shrinkwrap.json
,package-lock.json
, as well as clearing cache and such.I did.
Double-check your package.json to make sure it doesn't require node-gyp or heapdump, we shouldn't require those.
Doesn't.
Honestly if all else fails... install yarn, set
package_manager
inconfig.json
toyarn
, and thenyarn
...I don't understand. Especially, since before 1.8.2 I had no problem upgrading, I started at 1.7.5 and did it twice successfully.
It's a desaster
-
Eh... paste your package.json please
Ah, how is it "my"
package.json
? It came with NodeBBWell, here it is:
{ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", "version": "0.8.2", "homepage": "http://www.nodebb.org", "repository": { "type": "git", "url": "https://github.com/NodeBB/NodeBB/" }, "main": "app.js", "scripts": { "start": "node loader.js", "test": "mocha ./tests -t 10000" }, "dependencies": { "async": "~1.4.2", "bcryptjs": "~2.2.1", "body-parser": "^1.9.0", "colors": "^1.1.0", "compression": "^1.1.0", "connect-ensure-login": "^0.1.1", "connect-flash": "^0.1.1", "connect-multiparty": "^2.0.0", "cookie-parser": "^1.3.3", "cron": "^1.0.5", "csurf": "^1.6.1", "daemon": "~1.1.0", "express": "^4.9.5", "express-session": "^1.8.2", "gravatar": "^1.1.0", "less": "^2.0.0", "logrotate-stream": "^0.2.3", "lru-cache": "^2.6.1", "lwip": "0.0.7", "mime": "^1.3.4", "minimist": "^1.1.1", "mkdirp": "~0.5.0", "mmmagic": "^0.4.0", "morgan": "^1.3.2", "nconf": "~0.7.1", "nodebb-plugin-composer-default": "1.0.14", "nodebb-plugin-dbsearch": "0.2.16", "nodebb-plugin-emoji-extended": "0.4.13", "nodebb-plugin-markdown": "4.0.5", "nodebb-plugin-mentions": "1.0.2", "nodebb-plugin-soundpack-default": "0.1.4", "nodebb-plugin-spam-be-gone": "0.4.2", "nodebb-rewards-essentials": "0.0.5", "nodebb-theme-lavender": "2.0.1", "nodebb-theme-persona": "3.0.13", "nodebb-theme-vanilla": "4.0.8", "nodebb-widget-essentials": "2.0.1", "npm": "^2.1.4", "passport": "^0.3.0", "passport-local": "1.0.0", "prompt": "^0.2.14", "request": "^2.44.0", "rimraf": "~2.4.2", "rss": "^1.0.0", "semver": "^5.0.1", "serve-favicon": "^2.1.5", "sitemap": "^1.0.0", "socket.io": "^1.2.1", "socket.io-client": "^1.2.1", "socket.io-redis": "^0.1.3", "socketio-wildcard": "~0.1.1", "string": "^3.0.0", "templates.js": "0.2.10", "touch": "1.0.0", "uglify-js": "^2.4.24", "underscore": "~1.8.3", "underscore.deep": "^0.5.1", "validator": "^4.0.5", "winston": "^1.0.1", "xregexp": "~2.0.0" }, "devDependencies": { "mocha": "~1.13.0", "grunt": "~0.4.5", "grunt-contrib-watch": "^0.6.1" }, "bugs": { "url": "https://github.com/NodeBB/NodeBB/issues" }, "engines": { "node": ">=0.10" }, "maintainers": [ { "name": "Andrew Rodrigues", "email": "[email protected]", "url": "https://github.com/psychobunny" }, { "name": "Julian Lam", "email": "[email protected]", "url": "https://github.com/julianlam" }, { "name": "Barı�<9F> Soner U�<9F>aklı", "email": "[email protected]", "url": "https://github.com/barisusakli" } ] }
Pretty sure you can remove lwip from there.
Ok, I did ... and ran into the same compilation error with some module named
mmagic
. -
That one too.
Ah, how is it "my" package.json? It came with NodeBB
Nice try. It used to come with NodeBB. Now it's yours and you can muck it up all you want
Let's hope removing lwip and mmmagic fixes this for you.
Remember: it's mmmagic with three m's
-
Just some context... lwip and mmmagic have led to many headaches similar to what you just experienced this past week. It's part of the reason why we push for js-only dependencies and minimize built dependencies as much as possible.
As for package.json... like I mentioned before we no longer commit it to the repository. What you have now is a copy of the one that used to come with NodeBB. During the upgrade process, we merge that copy with the one in
install/
to create a more up-to-date one while preserving any plugins and such you've already got installed.In your case, the lwip and mmmagic dependencies just got carried over when you upgraded to latest.