|
123 | 123 | // Save some time: no need to build the projects that are not needed in final app. Currently unused. |
|
124 | 124 | //---------------------------------------------------------------------------------------------------+
|
125 | 125 | //@ts-ignore
|
126 |
| - let pkg = require('../working-copy/package.json'); |
127 |
| - const workspaces = pkg.workspaces; |
| 126 | + const rootPackageJson = require('../working-copy/package.json'); |
| 127 | + const workspaces = rootPackageJson.workspaces; |
128 | 128 | // We cannot remove the `electron-app`. Otherwise, there is not way to collect the unused dependencies.
|
129 | 129 | const dependenciesToRemove = [];
|
130 | 130 | for (const dependencyToRemove of dependenciesToRemove) {
|
|
133 | 133 | workspaces.splice(index, 1);
|
134 | 134 | }
|
135 | 135 | }
|
136 |
| - pkg.workspaces = workspaces; |
| 136 | + rootPackageJson.workspaces = workspaces; |
137 | 137 | fs.writeFileSync(
|
138 | 138 | path('..', workingCopy, 'package.json'),
|
139 |
| - JSON.stringify(pkg, null, 2) |
| 139 | + JSON.stringify(rootPackageJson, null, 2) |
140 | 140 | );
|
141 | 141 |
|
142 | 142 | //-------------------------------------------------------------------------------------------------+
|
|
169 | 169 | if (extension !== 'arduino-ide-extension') {
|
170 | 170 | // Do not unlink self.
|
171 | 171 | // @ts-ignore
|
172 |
| - pkg = require(`../working-copy/${extension}/package.json`); |
| 172 | + rootPackageJson = require(`../working-copy/${extension}/package.json`); |
173 | 173 | // @ts-ignore
|
174 |
| - pkg.dependencies['arduino-ide-extension'] = |
| 174 | + rootPackageJson.dependencies['arduino-ide-extension'] = |
175 | 175 | 'file:../arduino-ide-extension';
|
176 | 176 | fs.writeFileSync(
|
177 | 177 | path('..', workingCopy, extension, 'package.json'),
|
178 |
| - JSON.stringify(pkg, null, 2) |
| 178 | + JSON.stringify(rootPackageJson, null, 2) |
179 | 179 | );
|
180 | 180 | }
|
181 | 181 | }
|
|
184 | 184 | // Merge the `working-copy/package.json` with `electron/build/template-package.json`. |
|
185 | 185 | //------------------------------------------------------------------------------------+
|
186 | 186 | // @ts-ignore
|
187 |
| - pkg = require('../working-copy/electron-app/package.json'); |
| 187 | + const appPackageJson = require('../working-copy/electron-app/package.json'); |
188 | 188 | template.build.files = [
|
189 | 189 | ...template.build.files,
|
190 | 190 | ...unusedDependencies.map((name) => `!node_modules/${name}`),
|
|
195 | 195 | dependencies[extension] = `file:../working-copy/${extension}`;
|
196 | 196 | }
|
197 | 197 | // @ts-ignore
|
198 |
| - pkg.dependencies = { ...pkg.dependencies, ...dependencies }; |
199 |
| - pkg.devDependencies = { ...pkg.devDependencies, ...template.devDependencies }; |
200 |
| - // Deep-merging the Theia application configuration. We enable the electron window reload in dev mode but not for the final product. (arduino/arduino-pro-ide#187) |
| 198 | + appPackageJson.dependencies = { ...appPackageJson.dependencies, ...dependencies }; |
| 199 | + appPackageJson.devDependencies = { ...appPackageJson.devDependencies, ...template.devDependencies }; |
| 200 | + // Deep-merging the Theia application configuration. |
201 | 201 | // @ts-ignore
|
202 |
| - const theia = merge(pkg.theia || {}, template.theia || {}); |
| 202 | + const theia = merge(appPackageJson.theia || {}, template.theia || {}); |
203 | 203 | const content = {
|
204 |
| - ...pkg, |
| 204 | + ...appPackageJson, |
205 | 205 | ...template,
|
206 | 206 | theia,
|
207 | 207 | // @ts-ignore
|
208 |
| - dependencies: pkg.dependencies, |
209 |
| - devDependencies: pkg.devDependencies, |
| 208 | + dependencies: appPackageJson.dependencies, |
| 209 | + devDependencies: appPackageJson.devDependencies, |
| 210 | + // VS Code extensions and the plugins folder is defined in the top level `package.json`. The template picks them up. |
| 211 | + theiaPluginsDir: rootPackageJson.theiaPluginsDir, |
| 212 | + theiaPlugins: rootPackageJson.theiaPlugins, |
210 | 213 | };
|
211 |
| - const overwriteMerge = (destinationArray, sourceArray, options) => |
212 |
| - sourceArray; |
213 | 214 | fs.writeFileSync(
|
214 | 215 | path('..', 'build', 'package.json'),
|
215 | 216 | JSON.stringify(
|
216 |
| - merge(content, template, { arrayMerge: overwriteMerge }), |
| 217 | + merge(content, template, { arrayMerge: (_, sourceArray) => sourceArray }), |
217 | 218 | null,
|
218 | 219 | 2
|
219 | 220 | )
|
|
0 commit comments