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)
|
||||
|
||||
def install(self, requirements):
|
||||
from ..requirements import NodePackageRequirement
|
||||
from ..requirements import (
|
||||
NodePackageRequirement,
|
||||
NodeModuleRequirement,
|
||||
BinaryRequirement,
|
||||
)
|
||||
|
||||
missing = []
|
||||
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):
|
||||
missing.append(requirement)
|
||||
continue
|
||||
try:
|
||||
package = NPM_COMMAND_PACKAGES[requirement.command]
|
||||
except KeyError:
|
||||
missing.append(requirement)
|
||||
continue
|
||||
self.session.check_call(["npm", "-g", "install", package])
|
||||
if missing:
|
||||
raise UnsatisfiedRequirements(missing)
|
||||
|
|
Loading…
Add table
Reference in a new issue