After Node / Npm Update, Sails.js unable to find module 'ini' - javascript

I am working on an application in Sails.js, and I ran across an authentication error when trying to create user accounts. I was not able to debug my problem, so I decided to update Node, and NPM. Now, a different error is thrown.
module.js:338
throw err;
^
Error: Cannot find module 'ini'
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> (/usr/local/lib/node_modules/sails/node_modules/rc/lib/utils.js:2:12)
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 Module.require (module.js:365:17)
I made the mistake of not updating either node, and npm in quite some time.
I did npm install ini. npm states that the installation was successful, however when I lift sails again, the same error is thrown.
I tested another Sails project that I know works correctly, and I am getting the same error.
I completely uninstalled node and npm, and reinstalled them, with no luck.
I removed the node_modules folder, and ran npm install, and got the same error.
I deleted both project folders, and re-cloned them from Github, but the failure is still there.
Out of desperation, I attempted to downgrade my version of node and npm, but oddly enough, I still got the same error.
The error was only present after I updated node. It makes no sense when I downgrade Node, the error persists.
Any assistance is greatly appreciated.

Looks like this problem traces back to the rc package, which has ini as a dependency.
You were on the right track reinstalling your node modules, as some modules with C bindings need to be recompiled to work with later versions of node.
Did you reinstall your global modules as well?
try:
npm remove -g sails
npm install -g sails
Which should recompile all of sails dependencies

Related

Couldn't install bourbon via ember

I am using ember-cli=>2.9.1,node=>9.6.1,bower=>1.8.2,npm=>5.6.0
I have created a sample ember app using following command,
ember new // to create ember project.
ember g template application //To create template with application.hbs.
ember install ember-pikaday // To install ember plugin
ember install ember-cli-sass
ember install ember-cli-bourbon
The above ember-cli-bourbon command fails with following exception,
Cannot find module 'resolve'
Error: Cannot find module 'resolve'
at Function.Module._resolveFilename (module.js:557:15)
at Function.Module._load (module.js:484:25)
at Module.require (module.js:606:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/vadivel/POC/ember-
project/sampleProject/node_modules/ember-cli-bourbon/index.js:5:21)
at Module._compile (module.js:662:30)
at Object.Module._extensions..js (module.js:673:10)
at Module.load (module.js:575:32)
at tryModuleLoad (module.js:515:12)
at Function.Module._load (module.js:507:3)
I have also tried following way,
npm install bourbon //successfully installed
ember install ember-cli-install // Fails with same error as described above.
Any help or hint would be appreciated.
There was an issue in v2.0.0 of ember-cli-bourbon where resolve was not included as a dependency. Upgrading to v2.0.1 should solve the issue. To do so, edit your package.json and ensure that the line containing "ember-cli-bourbon" specifies "^2.0.1" and then run npm install.
See https://github.com/yapplabs/ember-cli-bourbon/issues/23 for more information.

Ubuntu trying to run .js file getting throw err;

So i moved to the directory where the .js file is located and i opend it with node filename.js got nodejs and everything installed on the ubuntu VPS and i get error:
throw err;
^
Error: Cannot find module 'is-property'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/var/www/bot/node_modules/steamcommunity-mobile-confirmations/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/index.js:1:80)
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)
what is the problem? or m i trying to run this file completly wrong?
It looks like you need to install a dependency.
Try running the following command in your terminal
npm install is-property --save
If you're trying to run a script with a package.json file, that should define all the dependencies you need. All that's left to do is run npm install in the project directory.
If there's no package.json defining dependencies, you'll need to install each missing dependency. As you've found out, it'll throw a missing module error if they're missing. You might run into this issue multiple times if there are multiple missing modules. To remedy that, either dive into the code, and look for require('package-name') statements that don't reference a local path. (E.g. require('./package') is a local file, whereas require('package') will look for an npm installed module.) Alternatively, you can just keep trying to run it, and install each missing dependency manually until it stops spitting out errors.
I highly recommend creating a package.json if one doesn't exist yet. You can use npm init, and any installed packages should be automatically added to it. Then you can save additional packages to it using npm install package-name --save, or npm install package-name -S. That way, if you use the same code on another machine/in another directory, you don't have to copy over the node_modules folder, as you can specify which packages/versions you want and install them with a single npm install.
Additionally, you may wish to read up on what the package.json file is in relation to node.
NPM Docs on package.json

Error at module.js:341 when trying to add android platform to ionic from command line

I am going to use the Ionic framework to work on hybrid app development, so I installed all the necessary dependencies (node.js, cordova, etc.) and followed their Getting started section. Step number 3 simply involves running the following command within the app directory:
> ionic platform add android
However midway during the execution I got the following error:
module.js:341
throw err;
^
Error: Cannot find module 'config-chain'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (C:\Users\james.bonello\AppData\Roaming\npm\node_modules\cordova\node_modules\npm\lib\config\core.js:2:10)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
I ran > npm update first and tried again to see if the update fixes any missing dependencies and such but the problem persisted.
So, as the error clearly states, the module 'config-chain' is missing so I next ran
> npm install config-chain
While that did install the module, the error somehow still persisted (identical to the previous one). I am not sure what to do next and I cannot understand why npm is not recognizing the 'config-chain' module now. Any ideas?
From what I can see, the missing package config-chain is a dependency of the global package cordova.
You should re-install cordova:
npm cache clean
npm uninstall cordova -g
npm install cordova -g
IF the problem persists, you have to manually install the package inside cordova's modules:
C:> cd Users\james.bonello\AppData\Roaming\npm\node_modules\cordova
C:> npm install config-chain
I did npm install and it worked .

Meteor 0.9 Modulus deployment doesn't work - "Cannot find module 'fibers'"

When trying to deploy a newly created Meteor (0.9) app I always get this error message in the Modulus logs:
module.js:340
throw err;
^
Error: Cannot find module 'fibers'
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> (/mnt/data/2/programs/server/boot.js:1:75)
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)
what I did was:
installing meteor with these steps
executing these steps for modulus setup
but even after trying the solution of the question "Can't install, update or run Meteor after update" I can't get it running.
anyone a guess what's wrong here?
After building your bundle, run the following:
cd <bundle dir>/programs/server
sudo npm install
That will install fibers into the bundle and that fixed it for me. Hope this works for you!
This may have something to do with the new architecture of the meteor bundle (the process which converts a Meteor app to a regular Node.js app).
In Meteor < 0.9 you had to run npm install at the root of the bundle to get npm modules installed, now you have to cd in programs/server first, as stated in the README :
This is a Meteor application bundle. It has only one external dependency:
Node.js 0.10.29 or newer. To run the application:
$ (cd programs/server && npm install)
$ export MONGO_URL='mongodb://user:password#host:port/databasename'
$ export ROOT_URL='http://example.com'
$ export MAIL_URL='smtp://user:password#mailhost:port/'
$ node main.js
Use the PORT environment variable to set the port where the
application will listen. The default is 80, but that will require
root on most systems.
Find out more about Meteor at meteor.com.
Modulus developed a tool called demeteorizer which is supposed to automate this process of converting a Meteor app to a Node.js app, and it's possible that they have not yet modified the tool to account for 0.9 changes.
I had the same issue but with building from the Meteorite Heroku buildpack. To save you the frustration of finding an updated buildpack, if you go here, you can use this buildpack that has the updates for Meteor 0.9.x. Thanks #djhi.
Can't tell if this is the same problem, however my app is now running after removing the 'spiderable' package.

How do you fork and develop a globally installed Node.js NPM package?

I'm trying to create a fix for a an NPM package that I rather enjoy, Wintersmith. However, Wintersmith is supposed to be globally installed (executable with wintersmith <command>) and I can't seem to run it from the root of a project where I have it installed locally manually with git clone <my fork url> with something like node ./node_modules/wintersmith/bin/wintersmith without receiving path errors:
module.js:340
throw err;
^
Error: Cannot find module '../lib/cli/'
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> (F:\web\wintersmith\node_modules\bin\wintersmith:3:1)
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)
The only way I can figure to properly develop and test this is by manually replacing my globally installed Wintersmith package with my forked version and then executing commands using that version to test whether or not my changes are working.
Is there some workflow step that I'm missing when working with/developing global NPM packages?
You should use npm install git:// instead git clone
Install your fork like this:
npm install git://github.com/YOURNAME/wintersmith.git
You can also install it as global module use -g:
npm install -g git://github.com/YOURNAME/wintersmith.git
NodeJS eats an environment variable NODE_PATH. You can make use of that besides PATH.
This document describes it better:
http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
I can execute wintersmith like this, without having to install it globally:
$ git clone https://github.com/jnordberg/wintersmith.git
$ cd wintersmith
$ npm install # This installs all dependencies I need for the next step.
$ npm run-script prepublish # Run the prepublish script which compiles sources to ./lib
$ bin/wintersmith
I get the usage message that it gives when there is nothing passed as arguments.
When creating a node package that is meant to be installed globally it is possible and desirable to design it so that it can be run and tested without having to install it. I was surprised that wintersmith would not be designed this way.
Generally speaking, if I had to deal with a node package that cannot be tested without being installed globally, I'd call it "defective". (Maybe there are exceptions but such exceptions are rare and they should be justified in the package's documentation.)
So, generally, if I had to deal with a package that cannot be run and tested without being installed globally, I'd look for a package providing equivalent functionality which can be run without being installed globally, or fix the faulty package.

Categories

Resources