npmlog accessing superCtor.prototype - node.js

Recently, I've seen travis builds fail if they use node 0.8, like this one here. The report reads something like this:
$ npm install
util.js:538
ctor.prototype = Object.create(superCtor.prototype, {
^
TypeError: Cannot read property 'prototype' of undefined
at Object.exports.inherits (util.js:538:43)
at Object.<anonymous> (/home/travis/.nvm/v0.8.28/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js:115:6)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/home/travis/.nvm/v0.8.28/lib/node_modules/npm/node_modules/npmlog/log.js:2:16)
at Module._compile (module.js:449:26)
Could it be that the npmlog module installed here is incompatible with node 0.8? Is there anything a project should do to fix this, is this a Travis bug to be reported somewhere, or has travis simply terminated support for node 0.8 even though it's still listed?

Related

Can't run discord bot (JavaScript)

I can't get the bot to run on the replit platform. I used the command node . and npm start. I am getting an error:
throw new Error(`Could not find fetch library. Install "node-fetch"/"undici" or define "fetch" in global scope!`);
^
Error: Could not find fetch library. Install "node-fetch"/"undici" or define "fetch" in global scope!
at getFetch (/home/runner/qwerty1/node_modules/youtube-sr/dist/mod.js:428:9)
at Object.<anonymous> (/home/runner/qwerty1/node_modules/youtube-sr/dist/mod.js:411:13)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/runner/qwerty1/node_modules/discord-player/lib/utils/Util.js:17:38)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/runner/qwerty1/node_modules/discord-player/lib/Player.js:18:32)
Anyone have any ideas on how to fix this?
It looks like the youtube-sr package is looking to use the fetch api, but there isn't a library installed to do this.
Try following the error message and install the undici package (which adds fetch support to node js)
npm i undici

travis job is failing as "const" is not yet supported outside strict mode

I'm trying to fix my PR in node restify npm package. Unfortunately travis job is failing for node 4 with the following error;
./node_modules/.bin/nodeunit test/*.test.js
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/travis/build/restify/node-restify/node_modules/anumargak/node_modules/randexp/lib/randexp.js:4:16)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/travis/build/restify/node-restify/node_modules/anumargak/src/util.js:3:15)
at Module._compile (module.js:409:26)
make: *** [test] Error 1
npmERR! Test failed. See above for more details.
I've already placed 'use strict', removed const keyword. But it is still failing for the same reason. I've also tried to test locally and it is passing.
How can I fix it?
Here is the code for reference.
I've found the solution and fixed the build. It was not because of the file it was reported on but because of postinstall script. I missed it to update as per node 4 compatible changes as it was not the part of actual source code.
I'm still not able to relate the bug with actual problem. But solved it.

Error with node site.js

I have problem with log4js.
Problem is that when i ran node.sj error pops up:
Error: Cannot find module 'log4js'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/bot/site.js:2:14)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
So i instaled log4js with:
npm install log4js
And now the real error is here:
/home/bot/node_modules/log4js/lib/log4js.js:25
const debug = require('debug')('log4js:main');
^^^^^
SyntaxError: Use of const in strict mode.
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/bot/site.js:2:14)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
Maybe i have broken bot. But bot should be OK.
I had this error in past but i fixed it and do not know how. (about 2years ago?) and error was in bot folder i think.
i have Debian 7 installed on server
Thx for response.
which version of node.js are you running?
node --version
First of all try to install your application packages with npm install log4j --save (to save it in your package.json).
It seems that you are using an old version of node.js!
Using this site you can see when the keyword const was introduced without requiring the strict keyword!
http://node.green/#ES2015-bindings-const
To fix the error just need to update your node.js to the latest stable version.
Another solutions: (The previous one is my favourite).
You can set a single specific file to be strict by writing 'use strict' on top of your file.
Or you can force to run your whole application to strict by using node --use_strict index.js (I wont recommend this one)

Error: Cannot find module './is-buffer'

I haven't found any posts that have an answer for this one. It appears to be a sourcing issue, but no matter what I try I can't seem to source it properly. I get the following error when trying to launch my application.
is-buffer is installed. I see it in my node-modules directory.
C:\MY-APP\dataService>node dataAPI.js
module.js:338
throw err;
^
Error: Cannot find module './is-buffer'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (C:\MY-APP\node_modules\socket.io\node_modules\so
ket.io-adapter\node_modules\socket.io-parser\index.js:11:13)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
I tried setting this in my binary file as well as my package.json. I'm able to change it in my binary file, but no matter what I'm not able to find the correct src dir.
I also tried npm install is-buffer -g to no avail. Any advice?
Unexpected token ILLEGAL
I was able to update the source to
var isBuf = require('C:\VF_PDO_APP\node_modules\is-buffer');
So now it seems to be going to the right place I think. Now however, I'm getting Unexpected token ILLEGAL.
C:\MY-APP\dataService>node dataAPI.js
C:\MY-APP\node_modules\socket.io\node_modules\socket.io-adapter\node_modules\socket.io-parser\binary.js:10
socket.io\node_modules\socket.io-adapter\node_modules\socket.io-parser
^^^
SyntaxError: Unexpected token ILLEGAL
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (C:\MY-APP\node_modules\socket.io\node_modules\soc
ket.io-adapter\node_modules\socket.io-parser\index.js:10:14)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
You first must install all your project dependencies, do it on the root folder of your project:
npm install
For your problem with socket.io try to:
npm install socket.io --save
For the bson problem:
npm install bson --save
(for this one probably you will need to install python and c++)

'The specified module could not be found' error when using 'scrypt' module in node.js

I'm trying to use 'scrypt' module. The problem is that when I try to run my nodejs application (node app.js), I get this error:
C:\Users\A\Documents\B\C>node app.js
module.js:356
Module._extensions[extension](this, filename);
^
Error: The specified module could not be found.
C:\Users\A\Documents\B\C\node_modules\scrypt\build\Release\scry
pt.node
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\Users\A\Documents\B\C\node_module
s\scrypt\index.js:1:76)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
I installed 'scrypt' module with this line:
npm install scrypt -msvs_version=2012
the -msvs_version is taken from this answer
You should have a look at this node-scrypt issue.
According to what is said there, you should be able to solve your problem by
either installing OpenSSL for Windows
or installing and building with Visual Studio 2010

Resources