Try harder to install node packages.
This commit is contained in:
parent
ddea6f957a
commit
6cb75e75b0
1 changed files with 15 additions and 6 deletions
|
@ -348,18 +348,27 @@ class NpmResolver(Resolver):
|
||||||
return "%s(%r)" % (type(self).__name__, self.session)
|
return "%s(%r)" % (type(self).__name__, self.session)
|
||||||
|
|
||||||
def install(self, requirements):
|
def install(self, requirements):
|
||||||
from ..requirements import NodePackageRequirement
|
from ..requirements import (
|
||||||
|
NodePackageRequirement,
|
||||||
|
NodeModuleRequirement,
|
||||||
|
BinaryRequirement,
|
||||||
|
)
|
||||||
|
|
||||||
missing = []
|
missing = []
|
||||||
for requirement in requirements:
|
for requirement in requirements:
|
||||||
|
if isinstance(requirement, BinaryRequirement):
|
||||||
|
try:
|
||||||
|
package = NPM_COMMAND_PACKAGES[requirement.command]
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
requirement = NodePackageRequirement(package)
|
||||||
|
if isinstance(requirement, NodeModuleRequirement):
|
||||||
|
# TODO: Is this legit?
|
||||||
|
requirement = NodePackageRequirement(requirement.module.split('/')[0])
|
||||||
if not isinstance(requirement, NodePackageRequirement):
|
if not isinstance(requirement, NodePackageRequirement):
|
||||||
missing.append(requirement)
|
missing.append(requirement)
|
||||||
continue
|
continue
|
||||||
try:
|
|
||||||
package = NPM_COMMAND_PACKAGES[requirement.command]
|
|
||||||
except KeyError:
|
|
||||||
missing.append(requirement)
|
|
||||||
continue
|
|
||||||
self.session.check_call(["npm", "-g", "install", package])
|
self.session.check_call(["npm", "-g", "install", package])
|
||||||
if missing:
|
if missing:
|
||||||
raise UnsatisfiedRequirements(missing)
|
raise UnsatisfiedRequirements(missing)
|
||||||
|
|
Loading…
Add table
Reference in a new issue