diff --git a/api/package-lock.json b/api/package-lock.json index 7d7f080..065068a 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -2127,11 +2127,18 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cross-env": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", + "requires": { + "cross-spawn": "^7.0.1" + } + }, "cross-spawn": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4127,8 +4134,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", @@ -5018,8 +5024,7 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.6", @@ -5800,7 +5805,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -5808,8 +5812,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "side-channel": { "version": "1.0.2", @@ -6796,7 +6799,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } diff --git a/api/package.json b/api/package.json index 9805c93..e037a00 100644 --- a/api/package.json +++ b/api/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "main": "src/index.js", "scripts": { - "start": "babel-node src/index.js", + "start": "cross-env NODE_ENV=production babel-node src/index.js", "dev": "nodemon -r dotenv/config --watch src --exec babel-node src/index.js" }, "engines": { @@ -19,6 +19,7 @@ "cacheman": "2.2.1", "cacheman-file": "0.2.1", "compression": "1.7.4", + "cross-env": "7.0.2", "dotenv": "8.2.0", "express": "4.17.1", "form-data": "3.0.0", diff --git a/api/src/api/Fetcher.js b/api/src/api/Fetcher.js index 95bf464..9f3544c 100644 --- a/api/src/api/Fetcher.js +++ b/api/src/api/Fetcher.js @@ -8,6 +8,14 @@ import { import Selectors from '../util/Selectors'; import { createCacheDirectories } from '../util/TempDirCreator'; +const getPuppeteerOptions = () => { + const options = {}; + if (process.env.NODE_ENV === 'production') { + options.args = ['--no-sandbox']; + } + return options; +}; + class CookieMonster { cache; browser; @@ -35,7 +43,7 @@ class CookieMonster { } async launchPage() { - this.browser = await puppeteer.launch(); + this.browser = await puppeteer.launch(getPuppeteerOptions()); this.page = await this.browser.newPage(); await this.page.goto(SEARCH_URL); await this.page.setCookie(...SITE_COOKIES);