|
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