Error with nodejs and express - node.js

I am trying to use express in an ubuntu 13.10 distribution. I am using node version 0.10.29 and npm 1.4.14 When I use express this is my output:
module.js:340
throw err;
^
Error: Cannot find module 'mkdirp'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/usr/bin/express:10:14)
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 Function.Module.runMain (module.js:497:10)
Additionally, I have to use sudo npm as npm doesn't work (i'm not sure if that's part of the issue - but I suspect path issues, not really sure). I have googled but haven't been able to fix the issues.
Edit: I think I messed up my path. I am unable to reinstall npm. Here is output from $PATH
bash: /home/qtrain/npm/bin:/usr/bin/yo:/home/qtrain/.node/bin:/home/qtrain/Enthought/Canopy_64bit/User/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/qtrain/.rvm/bin:/home/qtrain/.rvm/bin:/home/qtrain/.rvm/bin:

The mkdirp error seems to originate from using the chris-lea repo for node.js as Michael answered.
To fix: eliminate the PPA and node itself, then reinstall as below.
1.) sudo apt-get install ppa-purge - if you don't already have it
2.) sudo ppa-purge ppa:chris-lea/node.js
3.) sudo apt-get remove nodejs
4.) sudo apt-get remove npm
5.) sudo apt-get autoremove
6.) sudo apt-get install nodejs
7.) sudo apt-get install npm
8.) sudo apt-get install node-express

I ran into a similar problem while using npm and express. My solution was to uninstall node from my entire system using sudo apt-get remove nodejs
Then I reinstalled node from source following directions here http://chimera.labs.oreilly.com/books/1234000001808/ch01.html#chap5_id35941617
Then I had to install npm separately using sudo apt-get install npm but it still didn't work.
It was then that I realized that ppa repos I had installed from chris lea were not configured for 13.10
https://launchpad.net/~chris-lea/+archive/ubuntu/node.js-legacy
Removed them and reinstalled npm using sudo apt-get install npm and installed express with sudo apt-get install node-express
I was then able to use npm and express
Hope this helps..

Related

Truffle Fails on Start After Install

I installed Truffle just fine, but I can't call it without getting the following error:
/usr/local/lib/node_modules/truffle/build/cli.bundled.js:98908
function VM (opts = {}) {
^
SyntaxError: Unexpected token =
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3
System Spec:
uname -a
Linux 7ed9621f5250 4.1.12-103.7.1.el7uek.x86_64
NodeJS v4.2.6
npm v3.5.2
Install commands used:
apt-get update
apt-get -y install curl nodejs npm
ln -s /usr/bin/nodejs /usr/bin/node
npm install -g truffle
I can't find any docs or posts on this in order to troubleshoot. Please help. Thanks.
I was also stuck in this. I followed this which work for me, hope it also works for you.
Remove node and npm completely. Install fresh node and npm using :
wget https://nodejs.org/dist/v8.8.0/node-v8.8.0-linux-x64.tar.gz
sudo tar -xf node-v8.8.0-linux-x64.tar.gz --directory /usr/local --strip-components 1
node --version
npm --version
sudo npm install -g truffle
mkdir truffle-proj
cd truffle-proj
truffle init

NPM breaks after it has been upgraded in docker container

I need to create a docker container with node v6.10.3, but with the latest npm (currently v5.4.1) to use new npm features for local packages.
Such installation runs without any problem on my Mac, but when I try to create a docker image with such an installation, after updating npm, the npm tool gets broken and throws a bunch of errors about missing packages.
Here is the example of the Dockerfile, with which I can reproduce this issue (note that my real Dockerfile is more complex):
FROM ubuntu:xenial
RUN apt-get update
RUN apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs
RUN npm i -g npm
RUN npm i -g lerna
When the build process gets to the line RUN npm i -g lerna it throws a bunch of errors like:
Error: Cannot find module 'process-nextick-args'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_readable.js:26:23)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
Any other npm script would result in the same errors. Reinstalling all the packages on which npm depends, does not seem as a solution for me.
I have also tried to install node inside the container using nvm, but I got the same errors.
My docker version:
Docker version 17.06.2-ce, build cec0b72
What's wrong with this Dockerfile and what am I missing?
I have found a workaround for this issue, using yarn.
It looks weird, but it works:
FROM ubuntu:xenial
RUN apt-get update
RUN apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs
RUN npm i -g yarn
RUN npm uninstall npm -g
RUN yarn global add npm
RUN npm i -g lerna
Still, it would be great if somebody can explain why the original solution did not work, and/or help find a better way to fix it.

Nodejs and npm error. modules missing

module.js:340
throw err;
^
Error: Cannot find module 'vinyl'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/morpheyesh/debugall/web-starter-kit/node_modules/gulp/node_modules/gulp-util/lib/File.js:1:80)
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 have major issues with node.js. I try to run any nodejs application or gulp, i get this error, I try to install every module , I keep getting the same error and it requires a new module. Is there anyway where I can install all the modules?
Plus, I have install nodejs through npm? how to install system wide? Gulp is been installed system wide(global). What is causing this error?
nodejs -v gives v0.10.30
`npm -v gives 1.4.21
gulp 3.8.7
I am working with the google web starter kit. I installed nodejs using apt-get, then install sass, then installed gulp, then npm. Is there a way where I can remove all these and install all of it system wide?
Try updating your global gulp installation:
sudo npm install --global gulp#latest
It sounds like everything is (was?) FUBAR for a while there. If you have not yet solved these problems, here's what I would recommend.
First, the official (Debian/Ubuntu) packages are a bit behind latest node. I would recommend uninstalling the packages nodejs and nodejs-legacy and following the instructions here to get the latest versions (packaged and published by nodesource): https://github.com/nodesource/distributions#usage-instructions
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
Now you will have a recent node (0.10.35) but an out-of-date npm. Upgrade your npm:
npm install -g npm#latest
Things should now work for you; you should be able to run npm install in your project directory and all dependencies will be installed correctly.
One thing to be wary of is that you should never run npm update or npm update -g. This does not update the current (or all global) packages, as one might think.
Try this for install all plugins required by gulp :
npm install gulp-jshint gulp-sass gulp-concat gulp-uglify gulp-rename --save-dev
Source : http://travismaynard.com/writing/getting-started-with-gulp
For me uninstalling gulp and then reinstalling it worked fine. This is with node v5.0.0
sudo npm uninstall -g gulp
npm install -g gulp

Can't install node.js with coffeescript on Ubuntu 12.04

Tried to install node.js with coffeescript like this:
sudo sudo apt-get install nodejs npm
sudo npm install -g coffee-script
But:
coffee -v
Returns me:
Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
at Function.Object.defineProperty.get (module.js:388:11)
at Object.<anonymous> (/home/lapsa/bin/coffee#1.3.0:4:21)
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 Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:903:3
I'm completely lost at the moment. Any help?
Tried this approach w/o success.
$ npm -v
1.2.15
$ node -v
v0.11.0-pre
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.2 LTS
Release: 12.04
Codename: precise
This solution worked for me (tested on both Ubuntu 12.04 and 13.04):
sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
sudo npm install -g coffee-script
Source:
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
Note that it does not use the default Ubuntu package npm. Instead npm is packaged with in Chris Lea's nodejs package.
If you already have npm installed, you might want to remove it first before applying the workaround above. Note that there is also a naming conflict with a package named node but which has nothing to do with nodejs. If you installed that package by accident, you might also want to remove it.
I'm wondering if your problem is related to trying to install npm using
sudo apt-get install nodejs npm
If you take a look at the instructions for installing nodejs via package manager it states that
As of Node.js v0.10.0, the nodejs package from Chris Lea's repo includes both npm and nodejs-dev.
I wonder if a rogue installed version of an npm package is causing you a problem. I ran into this the other day but for me, npm just wouldn't install.

Node forever doesn't work on Ubuntu 12.04.1

When I fun forever on Ubuntu 12.04.1, I got the error below after upgrading node.js from v0.6.12 to v0.8.15. Before upgrading it works well. Does anyone encounter this kind of issue before?
$ forever
module.js:340
throw err;
^
Error: Cannot find module './daemon.v0.8.15'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/usr/local/lib/node_modules/forever/node_modules/daemon/lib/daemon.js:12:11)
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)
My environment is
node v0.8.15
npm 1.1.66
I installed node and npm with the command line blow
$ sudo apt-get install python-software-properties -y
$ sudo add-apt-repository ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install nodejs npm -y
I installed forever with the command line
$ sudo npm install forever -g
'sudo npm update -g forever' doesn't work for me. I deleted all the installed modules and install it again. The forever works. The steps are as below.
Delete the all the existing forever modules.
$ sudo rm -R /usr/lib/node_modules/forever
$ sudo rm -R /usr/local/lib/node_modules/forever
Install the forever again.
$ sudo npm install forever -g
You will get he solution with below commands but some issue, so please try the PM2 with so many advantages and check points of debuting
$ sudo rm -R /usr/lib/node_modules/forever
$ sudo rm -R /usr/local/lib/node_modules/forever
Please use this for debuting the node.js exception and monitoring the process of each and every with clustering and master and slave logic
http://devo.ps/blog/2013/06/26/goodbye-node-forever-hello-pm2.html
$ sudo npm install -g pm2

Resources