I am a newbie with nodejs.
I installed globally modules zepto and jsdom :
npm install jsdom -g
npm install zepto -g
I checked with npm list -g. These modules are installed.
But when I reference these two modules in a script using require:
var jsdom = require("jsdom");
var Zepto = require("zepto");
I got an error message :
Error: Cannot find module 'zepto'
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/user554/dev/exchange/bin/getExchangeData.js:6:13)
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)
I tried with only jsdom and only zepto. Only Zepto fails.
What am I missing ? Thank you for your help.
The zepto package is not a proper Node package. It installs a minified version of the Zepto lib, but it looks like it's meant for browser usage (why would it be in the NPM repository? I have no idea).
Instead, try the zepto-node package.
The real problem here is that you're installing globally. Installing with -g is meant only for modules that provide some kind of command-line scripts (e.g. express-generator provides the express command that you can use from your shell prompt).
Generally you install the module without -g and it will get installed locally and you can require() it just fine. However, as pointed out by #robertklep, the zepto module currently does not export anything (missing "lib" in package.json), so installing locally would not help for that particular module.
Related
I'm new with code and apps either launching or trial. Recently I've been trying to set up a node on my mac terminal and experienced the below problems....
ironfish start
/usr/local/Cellar/ironfish/75/libexec/node_modules/bindings/bindings.js:121
throw e;
^
Error: The module '/usr/local/Cellar/ironfish/75/libexec/node_modules/segfault-handler/build/Release/segfault-handler.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 108. This version of Node.js requires
NODE_MODULE_VERSION 93. Please try re-compiling or re-installing
the module (for instance, using npm rebuild or npm install).
at Object.Module._extensions..node (node:internal/modules/cjs/loader:1249:18)
at Module.load (node:internal/modules/cjs/loader:1043:32)
at Function.Module._load (node:internal/modules/cjs/loader:878:12)
at Module.require (node:internal/modules/cjs/loader:1067:19)
at require (node:internal/modules/cjs/helpers:103:18)
at bindings (/usr/local/Cellar/ironfish/75/libexec/node_modules/bindings/bindings.js:112:48)
at Object. (/usr/local/Cellar/ironfish/75/libexec/node_modules/segfault-handler/index.js:3:37)
at Module._compile (node:internal/modules/cjs/loader:1165:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)
at Module.load (node:internal/modules/cjs/loader:1043:32) {
code: 'ERR_DLOPEN_FAILED'
}
I followed some solution similar to the err name but that didn't resolve it:
npm uninstall bcrypt
npm install bcryptjs
npm install bcrypt
it's not resolved. please assit
We've got some error and we try to install optionator but nothing happened. We're using Linux
We're trying to npm i from package.json which include this dependencies
"optionalDependencies": {
"eslint-config-<name>": "github:<username>/<repo>"
}
then we tried to run npm i optionator but still get the same error
Error: Cannot find module 'optionator'
Require stack:
- /usr/share/nodejs/eslint/lib/options.js
- /usr/share/nodejs/eslint/lib/cli.js
- /usr/share/nodejs/eslint/bin/eslint.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:885:15)
at Function.Module._load (internal/modules/cjs/loader.js:730:27)
at Module.require (internal/modules/cjs/loader.js:957:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/usr/share/nodejs/eslint/lib/options.js:12:20)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
at Module.require (internal/modules/cjs/loader.js:957:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/usr/share/nodejs/eslint/lib/options.js',
'/usr/share/nodejs/eslint/lib/cli.js',
'/usr/share/nodejs/eslint/bin/eslint.js'
Anyone who experienced this, please help us. Thanks
So if you have not done an npm init then that is the issue. npm init initializes the project and will add the node_modules folder to the working directory, this will set it up as a node project. Then to install a dependency just run a npm install <dependency> although I do recommend doing a --save afterwards as well as it just ensures that the package is put in your current directory
$ npm init
$ npm install optionator --save
npm-init | npm Docs
Nothing worked until when I initialized the project in a new directory and reinstalled all the dependent modules afresh.
Need to give full access to package-lock.json
If you are using linux do this
sudo eslint init
Hello I am new in a nodejs and when I run any file in command prompt like:-
C:\demoData>node demo.js
I get error li9ke this
module.js:327
throw err;
^
Error: Cannot find module 'express'
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> (C:\demoData\shahzad.js:1:77)
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 Function.Module.runMain (module.js:441:10)
I did R&D and get the solution
npm install express
And my Problem has solved using this. But Why I required this I have already express folder globally.this path
C:\Users\broswire\AppData\Roaming\npm\node_modules;
I want to use this node_modules, I don't want locally node_modules.
Node encourages using locally installed modules. Generally, using modules installed with npm install --global or npm install -g should be reserved for cli tools and things used systemwide. So to use express in a project, it is recommended to npm install express in that directory. It is also useful to add a package.json file to save the versions of your dependencies. Then you can just navigate to your project and run npm install and it will install the required dependencies.
I have node.js install on linux, and file.js. In the same directory I have node_modules directory with lru-cache module.
file.js does the following:
var lrucache = require('lru-cache')
But when I run it, it raises the following error:
Error: Cannot find module 'lru-cache'
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> (/opt/file.js:58:12)
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)
What is the problem? the same is working in other linux system.
Please try:
rm -rf node_modules && npm cache clean && npm install
Sometimes npm has an issue and the dependency lru-cache may not get properly installed.
Most node modules will have their own set of package dependencies so you cannot just copy the folder or clone the repository without making sure you are satisfying the module's dependencies.
The easiest way would be using npm for ALL package installations.
After you have run npm init in your project's root directory to set up your package.json use
$ npm install modulename --save
to install a package AND its dependencies. You can now safely use
var module = require('modulename');
throughout your whole project.
In case you cannot install your package via npm make sure all of its dependencies are installed as well by navigating to node_modules/modulename and running npm install (no arguments) here. This will install all dependencies that are listed in the modules own package.json file.
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.