Hi Anders, On Thursday, 2 March 2017 6:19:55 AM NZDT Anders Darander wrote: > 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())
This worries me slightly - I've no familiarity with angular2 but AIUI in general the dev dependencies most often aren't needed, and may be onerous to pull in and build - should we really be pulling those in unconditionally? Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
