solution-viewer
.solutions(show="{solution != null && solution !== false}")
h2 This is probably your problem:
solution(topic="bindingSyntax")
h3 There's a syntax error in the binding.gyp
file of the {parent.offendingModule}
module.
p Unfortunately, there's nothing you can do about this, other than filing a bug on the {parent.offendingModule}
package and waiting for the author to fix it.
solution(topic="missingEnvironment")
h3 Your build environment is missing or incomplete.
p One or more build tools or SDKs are missing from your system. Follow the setup instructions for node-gyp
to resolve this.
solution(topic="brokenEnvironment")
h3 Your build environment is broken.
p Something in your environment doesn't work as it should; it's possible that you're missing some build tools, or that they need to be updated or rebuilt.
p Try the following steps:
ol
li Follow the setup instructions for node-gyp
.
li If on OS X, make sure to upgrade your installation of XCode to the latest version.
li If it still doesn't work, try reinstalling Node.js.
solution(topic="missingLibtool")
h3 libtool
is not installed.
p One of the dependencies you tried to install ({parent.offendingModule}
) requires libtool
for its compilation process, but it's missing from your system.
p To solve this problem, install the libtool
package through your system's package manager, and retry the npm install
.
solution(topic="missingPython")
h3 Python is not installed.
p You will need to have Python installed, to be able to install compiled (C++) modules with NPM. It's possible that you're also missing other build tools.
p To solve this problem, follow the setup instructions for node-gyp
.
solution(topic="wrongPython")
h3 You have the wrong version of Python installed.
p The node-gyp
utility, which is used for installing compiled (C++) modules with NPM, only supports Python 2. However, you only seem to have Python 3 installed.
p To solve this problem, follow the setup instructions for node-gyp
.
p If you're certain that you have Python 2 installed, you may need to configure npm
to know where it is. This is also covered in the above instructions. Specifically, you'll want to use the --version
flag.
solution(topic="gcc")
h3 Your C++ compiler is too old.
p Newer C++ modules for Node.js require a recent C++ compiler, and not all distributions include a recent enough version of GCC.
p The exact instructions will vary by distribution and OS, but these are some that I know of:
ul
li: a(href="http://charette.no-ip.com:81/programming/2011-12-24_GCCv47/") Ubuntu
p If you know of instructions for other distributions, then please send me an e-mail!
solution(topic="nan")
h3 Your version of Node.js is too new, and you need to update your dependencies.
p The version of the {parent.offendingModule}
module that you're trying to install, was written for an older Node.js version. There's probably a newer version available, so try updating your project or its dependencies.
p If this doesn't work, then file a bug on the {parent.offendingModule}
module, and ask the author to make it compatible with the newest Node.js version.
solution(topic="v8")
h3 Your version of Node.js is either too new, or too old.
p The version of the {parent.offendingModule}
module that you're trying to install, was written for a different Node.js version.
p There may be a different version available that's compatible with your Node.js version.
p If there isn't, or you can't find it, then file a bug on the {parent.offendingModule}
module, and ask the author to make it compatible with the newest Node.js version.
solution(topic="missingLibrary", data-handler="{_missingLibraryHandler}")
h3 You're missing one or more libraries on your system.
p A dependency you're trying to install ({parent.offendingModule}
) requires one or more libraries to be installed on your system, but NPM can't find them.
p The missing libraries are:
.libraryBoxes
library-box(each="{library in parent.missingLibraries}", library-info="{library}")
.clear
virtual(if="{parent.hasUnknownLibraries}")
p For the unknown libraries listed above, try reading the documentation of the {parent.offendingModule}
module, or Googling the filename(s).
p To help improve this tool, please e-mail me with the details once you've determined which package(s) the libraries belong to, and I'll add them to the database.
solution(topic="libraryVersion")
h3 You have the wrong version of a library installed on your system.
p One or more of the libraries that's used by the {parent.offendingModule}
module exist on your system, but aren't the right version.
p Unfortunately I don't really have more information about it - you'll have to read the documentation for the {parent.offendingModule}
module to determine which version you need to have installed.
p Alternatively, you can e-mail me with a gist of your NPM output, and I'll try to find the problem for you.
solution(topic="headers")
h3 You're missing the Node.js development headers.
p When installing Node.js from your distribution's package manager, you must also install the development headers. Some possible names of the package for this:
ul
li: code node-dev
li: code node-devel
li: code nodejs-dev
li: code nodejs-devel
p Depending on the distribution you're using, it may also have a different name.
solution(topic="npmBug")
h3 That looks like an NPM bug.
p Occasionally, NPM installations will bug out, and it seems like that has happened here. Try removing your node_modules
directory, and installing your dependencies again from scratch using npm install
.
p Make sure that your package.json
correctly declares all your dependencies, or there might be missing dependencies. This article explains how to install packages in such a way that this is never an issue.
solution(topic="symlinkIssue")
h3 There's an issue with symbolic links on your system.
p You are most likely running npm install
in something like Docker or VirtualBox, with "shared directories" enabled. This is known to cause issues with symbolic links on some platforms.
p A workaround is to install your packages using --no-bin-links
.
solution(topic="unmetDependency", data-handler="{_missingModuleHandler}")
h3 You're missing a dependency.
p Your package.json
indicates a dependency that isn't actually installed into your node_modules
. These are the dependencies you're missing:
.moduleBoxes
module-box(each="{module in parent.missingModules}", module-info="{module}")
.clear
p You can generally fix this by simply running npm install
, without any additional arguments.
solution(topic="unmetPeerDependency", data-handler="{_missingModuleHandler}")
h3 You're missing a peer dependency.
p You're missing one or more dependencies that require manual installation - usually, this concerns a library that you've installed a plugin for. The missing dependencies are:
.moduleBoxes
module-box(each="{module in parent.missingModules}", module-info="{module}")
.clear
p To understand the range notation that is used here (if any), read this article.
h2 Did this solve your problem?
p Maintaining open-source projects takes a lot of time and effort. If this tool saved you some headaches, consider making a donation :)
h2 Still broken?
p If it still doesn't work, please file an issue, containing the full npm install
output.
//p If it still doesn't work, contact me and I'll try to work out what's wrong. Please paste your output to a pastebin like GitHub Gist, and send it to me on IRC or by e-mail.
//p IRC: You can find me on Freenode in #Node.js as joepie91.
//p E-mail: My e-mail address is admin@cryto.net.
.no-solutions(show="{solution === false}")
h2 Sorry, I couldn't find your problem.
p Please file an issue, containing the full npm install
output. I will try to figure out your error, and add detection for it to this tool as well!
//p Please paste your output to a pastebin like GitHub Gist, and send it to me on IRC or by e-mail. I will try to figure out your error, and add detection for it to this tool as well!
//p IRC: You can find me on Freenode in #Node.js as joepie91.
//p E-mail: My e-mail address is admin@cryto.net.
style(scoped, type="scss").
h2 {
margin-top: 32px;
}
solution {
display: none;
}
.libraryBoxes, .moduleBoxes {
margin-top: 12px;
margin-bottom: 12px;
}
.clear {
clear: both;
}
script.
const $ = require("jquery");
const flatten = require("arr-flatten");
const dedupe = require("dedupe");
const findPackages = require("../find-packages");
this.mixin(require("riot-query").mixin);
Object.assign(this, {
viewTopic: (topic, data) => {
let solutions = this.query("solution");
this.solution = topic;
solutions.forEach((solution) => {
$(solution.root).hide();
});
solutions.filter((solution) => {
return solution.opts.topic === topic;
}).forEach((solution) => {
$(solution.root).show();
solution.setData(data);
this.offendingModule = data.offendingModule;
});
this.update();
},
_missingLibraryHandler: (data) => {
this.missingLibraries = dedupe(flatten(data.missingLibraries.map((library) => {
let knownPackages = findPackages(library);
if (knownPackages.length > 0) {
return knownPackages;
} else {
return {
headerNames: [library]
}
}
})));
this.hasUnknownLibraries = (this.missingLibraries.some((library) => library.name == null));
this.update();
},
_missingModuleHandler: (data) => {
this.missingModules = data.missingModules;
this.update();
}
});