Web applications built using e.g. angular2, usually requires that the packages in devDependencies are available.
Signed-off-by: Anders Darander <[email protected]> --- scripts/lib/recipetool/create_npm.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/scripts/lib/recipetool/create_npm.py b/scripts/lib/recipetool/create_npm.py index 3ba6de0..11b2950 100644 --- a/scripts/lib/recipetool/create_npm.py +++ b/scripts/lib/recipetool/create_npm.py @@ -83,7 +83,7 @@ class NpmRecipeHandler(RecipeHandler): extravalues['extrafiles']['lockdown.json'] = tmpfile lines_before.append('NPM_LOCKDOWN := "${THISDIR}/${PN}/lockdown.json"') - def _handle_dependencies(self, d, deps, optdeps, lines_before, srctree): + def _handle_dependencies(self, d, deps, optdeps, devdeps, lines_before, srctree): import scriptutils # If this isn't a single module we need to get the dependencies # and add them to SRC_URI @@ -97,6 +97,10 @@ class NpmRecipeHandler(RecipeHandler): depdata = self.get_npm_data(dep, depver, d) if self.check_npm_optional_dependency(depdata): deplist[dep] = depdata + for dep, depver in devdeps.items(): + depdata = self.get_npm_data(dep, depver, d) + if self.check_npm_optional_dependency(depdata): + deplist[dep] = depdata for dep, depver in deps.items(): depdata = self.get_npm_data(dep, depver, d) deplist[dep] = depdata @@ -179,8 +183,8 @@ class NpmRecipeHandler(RecipeHandler): if 'homepage' in data: extravalues['HOMEPAGE'] = data['homepage'] - deps, optdeps = self.get_npm_package_dependencies(data) - updated = self._handle_dependencies(tinfoil.config_data, deps, optdeps, lines_before, srctree) + deps, optdeps, devdeps = self.get_npm_package_dependencies(data) + updated = self._handle_dependencies(tinfoil.config_data, deps, optdeps, devdeps, lines_before, srctree) if updated: # We need to redo the license stuff self._replace_license_vars(srctree, lines_before, handled, extravalues, tinfoil.config_data) @@ -277,15 +281,20 @@ class NpmRecipeHandler(RecipeHandler): def get_npm_package_dependencies(self, pdata): dependencies = pdata.get('dependencies', {}) optionalDependencies = pdata.get('optionalDependencies', {}) + devDependencies = pdata.get('devDependencies', {}) dependencies.update(optionalDependencies) + dependencies.update(devDependencies) depsfound = {} optdepsfound = {} + devdepsfound = {} for dep in dependencies: if dep in optionalDependencies: optdepsfound[dep] = dependencies[dep] + elif dep in devDependencies: + devdepsfound[dep] = dependencies[dep] else: depsfound[dep] = dependencies[dep] - return depsfound, optdepsfound + return depsfound, optdepsfound, devdepsfound # FIXME this is effectively duplicated from lib/bb/fetch2/npm.py # (split out from _getdependencies()) -- 2.10.2 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
