diff options
-rw-r--r-- | meta/classes-recipe/npm.bbclass | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/meta/classes-recipe/npm.bbclass b/meta/classes-recipe/npm.bbclass index c1944ca14e..91da3295f2 100644 --- a/meta/classes-recipe/npm.bbclass +++ b/meta/classes-recipe/npm.bbclass | |||
@@ -153,7 +153,11 @@ python npm_do_configure() { | |||
153 | 153 | ||
154 | if has_shrinkwrap_file: | 154 | if has_shrinkwrap_file: |
155 | cached_shrinkwrap = copy.deepcopy(orig_shrinkwrap) | 155 | cached_shrinkwrap = copy.deepcopy(orig_shrinkwrap) |
156 | cached_shrinkwrap.pop("dependencies", None) | 156 | for package in orig_shrinkwrap["packages"]: |
157 | if package != "": | ||
158 | cached_shrinkwrap["packages"].pop(package, None) | ||
159 | cached_shrinkwrap["packages"][""].pop("dependencies", None) | ||
160 | cached_shrinkwrap["packages"][""].pop("devDependencies", None) | ||
157 | cached_shrinkwrap["packages"][""].pop("peerDependencies", None) | 161 | cached_shrinkwrap["packages"][""].pop("peerDependencies", None) |
158 | 162 | ||
159 | # Manage the dependencies | 163 | # Manage the dependencies |
@@ -177,9 +181,16 @@ python npm_do_configure() { | |||
177 | dep["integrity"] = _npm_integrity(tarball) | 181 | dep["integrity"] = _npm_integrity(tarball) |
178 | if params.get("dev", False): | 182 | if params.get("dev", False): |
179 | dep["dev"] = True | 183 | dep["dev"] = True |
180 | if "dependencies" not in cached_shrinkwrap: | 184 | if "devDependencies" not in cached_shrinkwrap["packages"][""]: |
181 | cached_shrinkwrap["dependencies"] = {} | 185 | cached_shrinkwrap["packages"][""]["devDependencies"] = {} |
182 | cached_shrinkwrap["dependencies"][name] = dep | 186 | cached_shrinkwrap["packages"][""]["devDependencies"][name] = pkg['version'] |
187 | |||
188 | else: | ||
189 | if "dependencies" not in cached_shrinkwrap["packages"][""]: | ||
190 | cached_shrinkwrap["packages"][""]["dependencies"] = {} | ||
191 | cached_shrinkwrap["packages"][""]["dependencies"][name] = pkg['version'] | ||
192 | |||
193 | cached_shrinkwrap["packages"][destsuffix] = dep | ||
183 | # Display progress | 194 | # Display progress |
184 | nonlocal progress_done | 195 | nonlocal progress_done |
185 | progress_done += 1 | 196 | progress_done += 1 |
@@ -212,7 +223,7 @@ python npm_do_configure() { | |||
212 | # Configure the cached manifest file and cached shrinkwrap file | 223 | # Configure the cached manifest file and cached shrinkwrap file |
213 | def _update_manifest(depkey): | 224 | def _update_manifest(depkey): |
214 | for name in orig_manifest.get(depkey, {}): | 225 | for name in orig_manifest.get(depkey, {}): |
215 | version = cached_shrinkwrap["dependencies"][name]["version"] | 226 | version = cached_shrinkwrap["packages"][""][depkey][name] |
216 | if depkey not in cached_manifest: | 227 | if depkey not in cached_manifest: |
217 | cached_manifest[depkey] = {} | 228 | cached_manifest[depkey] = {} |
218 | cached_manifest[depkey][name] = version | 229 | cached_manifest[depkey][name] = version |