From 3c930e85010fcf85aae48eb07603412a31044c29 Mon Sep 17 00:00:00 2001 From: SamTolmay Date: Fri, 5 Feb 2021 15:25:27 +0200 Subject: [PATCH] fix(cli): Fix netlify build. Use fs-extra to copy files. npm install to project root dir. --- .pnp.js | 37 ++++++ ...t-node-npm-1.0.0-2b36e661fa-8f33efc162.zip | Bin 0 -> 2294 bytes ...-extra-npm-9.1.0-983c2ddb4c-e667d8df54.zip | Bin 0 -> 45587 bytes ...onfile-npm-6.1.0-20a4796cee-9419c886ab.zip | Bin 0 -> 7071 bytes ...salify-npm-2.0.0-03b8b418a8-36bfbdc97b.zip | Bin 0 -> 2863 bytes packages/cli/package.json | 1 + packages/cli/src/commands/build/build.js | 4 +- .../src/commands/buildNetlify/buildNetlify.js | 121 ++++++++---------- .../cli/src/commands/cleanCache/cleanCache.js | 4 +- .../commands/cleanCache/cleanCache.test.js | 15 ++- packages/cli/src/commands/dev/prepare.js | 4 +- .../cli/src/utils/checkChildProcessError.js | 6 +- .../src/utils/checkChildProcessError.test.js | 6 +- packages/cli/webpack.config.js | 2 +- yarn.lock | 40 ++++++ 15 files changed, 152 insertions(+), 88 deletions(-) create mode 100644 .yarn/cache/at-least-node-npm-1.0.0-2b36e661fa-8f33efc162.zip create mode 100644 .yarn/cache/fs-extra-npm-9.1.0-983c2ddb4c-e667d8df54.zip create mode 100644 .yarn/cache/jsonfile-npm-6.1.0-20a4796cee-9419c886ab.zip create mode 100644 .yarn/cache/universalify-npm-2.0.0-03b8b418a8-36bfbdc97b.zip diff --git a/.pnp.js b/.pnp.js index ff7b5c8a9..23390d9e5 100755 --- a/.pnp.js +++ b/.pnp.js @@ -4367,6 +4367,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["decompress-targz", "npm:4.1.1"], ["dotenv", "npm:8.2.0"], ["express", "npm:4.17.1"], + ["fs-extra", "npm:9.1.0"], ["graphql", "npm:15.5.0"], ["html-webpack-plugin", "virtual:1e43113c7dc84a5d03308bf7ffaf00574d351ca16282af6c6c0b9576804fb03914bdf2200961292f439926b2e537dce172d7529f79013ce51b9f2d56e9cd836b#npm:4.5.1"], ["inquirer", "npm:7.3.3"], @@ -8368,6 +8369,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD", }] ]], + ["at-least-node", [ + ["npm:1.0.0", { + "packageLocation": "./.yarn/cache/at-least-node-npm-1.0.0-2b36e661fa-8f33efc162.zip/node_modules/at-least-node/", + "packageDependencies": [ + ["at-least-node", "npm:1.0.0"] + ], + "linkType": "HARD", + }] + ]], ["atob", [ ["npm:2.1.2", { "packageLocation": "./.yarn/cache/atob-npm-2.1.2-bcb583261e-597c0d1a74.zip/node_modules/atob/", @@ -13942,6 +13952,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["universalify", "npm:0.1.2"] ], "linkType": "HARD", + }], + ["npm:9.1.0", { + "packageLocation": "./.yarn/cache/fs-extra-npm-9.1.0-983c2ddb4c-e667d8df54.zip/node_modules/fs-extra/", + "packageDependencies": [ + ["fs-extra", "npm:9.1.0"], + ["at-least-node", "npm:1.0.0"], + ["graceful-fs", "npm:4.2.4"], + ["jsonfile", "npm:6.1.0"], + ["universalify", "npm:2.0.0"] + ], + "linkType": "HARD", }] ]], ["fs-minipass", [ @@ -17416,6 +17437,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["graceful-fs", "npm:4.2.4"] ], "linkType": "HARD", + }], + ["npm:6.1.0", { + "packageLocation": "./.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-9419c886ab.zip/node_modules/jsonfile/", + "packageDependencies": [ + ["jsonfile", "npm:6.1.0"], + ["graceful-fs", "npm:4.2.4"], + ["universalify", "npm:2.0.0"] + ], + "linkType": "HARD", }] ]], ["jsonparse", [ @@ -26411,6 +26441,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["universalify", "npm:0.1.2"] ], "linkType": "HARD", + }], + ["npm:2.0.0", { + "packageLocation": "./.yarn/cache/universalify-npm-2.0.0-03b8b418a8-36bfbdc97b.zip/node_modules/universalify/", + "packageDependencies": [ + ["universalify", "npm:2.0.0"] + ], + "linkType": "HARD", }] ]], ["unpipe", [ diff --git a/.yarn/cache/at-least-node-npm-1.0.0-2b36e661fa-8f33efc162.zip b/.yarn/cache/at-least-node-npm-1.0.0-2b36e661fa-8f33efc162.zip new file mode 100644 index 0000000000000000000000000000000000000000..bea524bc259960f3ed9eabfdf66ddeeec3b0d834 GIT binary patch literal 2294 zcmWIWW@Zs#fB;1(4WW2}R9=2cYJ6^fN@-4Nv3>wfrPAn16H9b+QWJ|ybU_9{H8L@9 z0F@~+*q@%GcbAcYfr*)cK?%P`A5UjjzhKwUfcX5|3Ig@tms@;YIeE>RSH-5iH!R!^ zO<>Hsve(iub3#^f;w7!$U##c2zEwG0aOeH~xt5U$yBOZ_mCeZw`|(of&TGv>e;-QQ z*xA@M>?%?IQ+7DvaKmP6d9lSCt<%U;bF(wygdg>_$JTSt=Un*RO7we-rXXKyTkrw z!guis-n$aH^AC&s+5I}VKP&dg{MNkp_unSf$)Bb zs_e{_1uxn(j(9IwaAWxfjf!Zajgb*+ZWgtP#oyS})V6BTu}Nzr)1RdpuA3nk@>-Ou zVS>Z_l?Dr5t9(+uJc}tk<*a5%gy2V}DsOJLioQZoU7x-`w|NCyMP~iW3gk8nnADaN z)S~@0>|IvU78m!{;Fr^8PuUl=iBa#X(2lDjyd8?2UDby-Sh>p`&CpU+`ytxqIq^b9 zmWU@O%iV%)3l}Zu)DYh?k*jg-Klc-j8p|dx&hbq;?J8i(vR6y*wV(9?k#74?iyCLK ztFQilUB78RBvru@hsg69^Il-0cm>4D_!CEFUP@|(URH5$k0Do!fq-kZzu{E14J^s> zzipc%I{Xx0sGK?CdSUNxwXVNmhwJxLuAaY*mG|AjVv&La527r%8ZJ(DS3NWLi@GVY{|ko@&V}rk*EuzbwtF@0LgP%}>#C^EhBq-^awjppM@+1&PVoiRr08 z|K#UQ4f6Fq>>#lBd$`WW6~0lr9Io99#2sy3_-@?bt9CNuTk~AsY@NUF&*cS0=T~vw zG=IPM=bgS5k1Zh+&bTW5-NEQtx5k(8WF*JhgMw1Bi!PT;@~hgya7s4H-bHT1s=sW9 z!fiI0)T$eDux9FbUkRNiox0RH$@9yPhP>n$$D9wR^4&N@Rwqq~SM|7WlXU?w@5*sK9OdWmDGb3Awj_Z(sMbKe)|BH$Wp@ z{H{!d^NZfseDn5g-e_ZXd%NM1#3x_Yue_x2|K#NazFCXj{{5VLzcZ&cH>RPfF@c@c z@8kWc8-2=t_9p+~4)xgd!qh7%M(h=nU8S>aR1$L`>))Q=TjhLDGXJcQ%C6K{+3;1i zU=dSEU%?SR9W{OZOD_ww3In7|HvW6s#CQVQX6zI@3sNY-q+d|ZyvC8Ki%SB zzTiOFjY@5AhoMUI6Qc081iD%gk-c3cZ7gw(emDc%|S)5_IQI*^AcG#iX z#Twjej!ru@nSJU4<~4JtJH2^Orq9&Ax!L-!_1||AXZ`v2xCvG1?QZt|DR^sr^}B=r z0)Jkfx~J=dU&kh$?T#Vm*dDq55OYmh{J^;4k7-8#<~J@jv%AeRH@`{J)Yp4D>98x~ zPjLnNC5$Q)#XlTox^}8XB>dYR%=N0+7BUsD0fLHW+jC+vfG=s}Rs`ulxrhg8e^xDMnKv#sh%%tFVmCp{8Rrl{a z{-exB?ex-^XWA-LCBE~1I`mOuZL+&<{*@Iy>qM9G-d?X#vZ~k4TDBva4MZ>N5C-}Kvlbo$kxM>w hL(y|5!q87FcnyW;)c|i+HjpkhAUp%i=OXMN9st;HY?1%~ literal 0 HcmV?d00001 diff --git a/.yarn/cache/fs-extra-npm-9.1.0-983c2ddb4c-e667d8df54.zip b/.yarn/cache/fs-extra-npm-9.1.0-983c2ddb4c-e667d8df54.zip new file mode 100644 index 0000000000000000000000000000000000000000..5b99d290a7b977cb8c3babf44a567a2bb9477165 GIT binary patch literal 45587 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 { - const cleanDirectory = jest.fn(); - return { cleanDirectory }; +jest.mock('fs-extra', () => { + const emptyDir = jest.fn(); + return { emptyDir }; }); jest.mock('../../utils/startUp'); beforeEach(() => { - cleanDirectory.mockReset(); + fse.emptyDir.mockReset(); }); test('cleanCache', async () => { await cleanCache({}); const cachePath = path.resolve(process.cwd(), './.lowdefy/.cache'); - expect(cleanDirectory.mock.calls).toEqual([[cachePath]]); + expect(fse.emptyDir.mock.calls).toEqual([[cachePath]]); }); test('cleanCache baseDir', async () => { await cleanCache({ baseDirectory: 'baseDir' }); const cachePath = path.resolve(process.cwd(), 'baseDir/.lowdefy/.cache'); - expect(cleanDirectory.mock.calls).toEqual([[cachePath]]); + expect(fse.emptyDir.mock.calls).toEqual([[cachePath]]); }); diff --git a/packages/cli/src/commands/dev/prepare.js b/packages/cli/src/commands/dev/prepare.js index 6c0e5c605..b3a8d19e0 100644 --- a/packages/cli/src/commands/dev/prepare.js +++ b/packages/cli/src/commands/dev/prepare.js @@ -15,7 +15,7 @@ */ import path from 'path'; import dotenv from 'dotenv'; -import { cleanDirectory } from '@lowdefy/node-utils'; +import fse from 'fs-extra'; import startUp from '../../utils/startUp'; @@ -27,7 +27,7 @@ async function prepare(options) { context.print.log( `Cleaning block meta cache at "${path.resolve(context.cacheDirectory, './meta')}".` ); - await cleanDirectory(path.resolve(context.cacheDirectory, './meta')); + await fse.emptyDir(path.resolve(context.cacheDirectory, './meta')); return context; } diff --git a/packages/cli/src/utils/checkChildProcessError.js b/packages/cli/src/utils/checkChildProcessError.js index 18d155fe9..4a3874669 100644 --- a/packages/cli/src/utils/checkChildProcessError.js +++ b/packages/cli/src/utils/checkChildProcessError.js @@ -14,9 +14,9 @@ limitations under the License. */ -function checkChildProcessError({ context, proccessOutput, message }) { - if (proccessOutput.status === 1) { - context.print.error(proccessOutput.stderr.toString('utf8')); +function checkChildProcessError({ context, processOutput, message }) { + if (processOutput.status === 1) { + context.print.error(processOutput.stderr.toString('utf8')); throw new Error(message); } } diff --git a/packages/cli/src/utils/checkChildProcessError.test.js b/packages/cli/src/utils/checkChildProcessError.test.js index a2a788a57..66fdf650d 100644 --- a/packages/cli/src/utils/checkChildProcessError.test.js +++ b/packages/cli/src/utils/checkChildProcessError.test.js @@ -24,18 +24,18 @@ const context = { }; test('output status 0', () => { - checkChildProcessError({ context, proccessOutput: { status: 0 }, message: 'Test Error Message' }); + checkChildProcessError({ context, processOutput: { status: 0 }, message: 'Test Error Message' }); // checkChildProcessError should not throw, expect is so that test passes expect(true).toBe(true); }); test('output status 1', () => { - const proccessOutput = { + const processOutput = { status: 1, stderr: Buffer.from('Process error message'), }; expect(() => - checkChildProcessError({ context, proccessOutput, message: 'Test Error Message' }) + checkChildProcessError({ context, processOutput, message: 'Test Error Message' }) ).toThrow('Test Error Message'); expect(mockError.mock.calls).toMatchInlineSnapshot( [['Process error message']], diff --git a/packages/cli/webpack.config.js b/packages/cli/webpack.config.js index a9fd3ba09..366b691fc 100644 --- a/packages/cli/webpack.config.js +++ b/packages/cli/webpack.config.js @@ -43,7 +43,7 @@ module.exports = [ ], }, plugins: [ - new CleanWebpackPlugin(), + // new CleanWebpackPlugin(), new webpack.BannerPlugin({ banner: '#!/usr/bin/env node', raw: true }), new ModuleFederationPlugin({ name: 'cli', diff --git a/yarn.lock b/yarn.lock index 1be873104..39674d75b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2951,6 +2951,7 @@ __metadata: decompress-targz: 4.1.1 dotenv: 8.2.0 express: 4.17.1 + fs-extra: 9.1.0 graphql: 15.5.0 html-webpack-plugin: 4.5.1 inquirer: 7.3.3 @@ -5741,6 +5742,13 @@ __metadata: languageName: node linkType: hard +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 8f33efc16287ed39766065c718a2d36a469f702c66c6eb41fa460c0c62bca395301a6a02946e315ae4a84c9cc7f44c94ec73a556bc2a1049350da98d0b013afe + languageName: node + linkType: hard + "atob-lite@npm:^2.0.0": version: 2.0.0 resolution: "atob-lite@npm:2.0.0" @@ -9803,6 +9811,18 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:9.1.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: ^1.0.0 + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: e667d8df54113b527bf5830dd9db8f142618db488894b329fe07724c7020dfacf8a372b144a74e683ae44e66f56117adca9cac165950dda7d83537c46c10dc4b + languageName: node + linkType: hard + "fs-extra@npm:^8.1.0": version: 8.1.0 resolution: "fs-extra@npm:8.1.0" @@ -12712,6 +12732,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 9419c886abc6f8a5088cbb222b7bc17c76e8ee9f6c0e5c38781a4e09488166084f25247bc0b58e025b08c43064c82ae860ad89a992e35fc8cfae639323b7edbc + languageName: node + linkType: hard + "jsonparse@npm:^1.2.0": version: 1.3.1 resolution: "jsonparse@npm:1.3.1" @@ -19846,6 +19879,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"universalify@npm:^2.0.0": + version: 2.0.0 + resolution: "universalify@npm:2.0.0" + checksum: 36bfbdc97bd4b483596e66ea65e20663f5ab9ec3650157d99b075b7f97afcdefe46bbb23f89171dd75595d398cea3769a5b6d7130f5c66cae2a0f00904780f62 + languageName: node + linkType: hard + "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0"