diff --git a/common/defineVolatileDependencies.js b/common/defineVolatileDependencies.js new file mode 100644 index 000000000..a8333de85 --- /dev/null +++ b/common/defineVolatileDependencies.js @@ -0,0 +1,21 @@ +const directory = process.argv[2]; +const fs = require('fs'); + +const volatilePackages = require('./volatilePackages'); +const apiPackageJson = JSON.parse(fs.readFileSync(`packages/api/package.json`, { encoding: 'utf-8' })); + +const dependencies = {}; +for (const pkg of volatilePackages) { + if (pkg == 'msnodesqlv8' && process.platform != 'win32') { + continue; + } + + if (apiPackageJson.dependencies[pkg]) { + dependencies[pkg] = apiPackageJson.dependencies[pkg]; + } + if (apiPackageJson.optionalDependencies[pkg]) { + dependencies[pkg] = apiPackageJson.optionalDependencies[pkg]; + } +} + +fs.writeFileSync(`${directory}/package.json`, JSON.stringify({ dependencies }, null, 2), 'utf-8'); diff --git a/package.json b/package.json index 584abfec6..e92c61ae0 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "prettier": "prettier --write packages/api/src && prettier --write packages/datalib/src && prettier --write packages/filterparser/src && prettier --write packages/sqltree/src && prettier --write packages/tools/src && prettier --write packages/types && prettier --write packages/web/src && prettier --write app/src", "copy:docker:build": "copyfiles packages/api/dist/* docker -f && copyfiles packages/web/public/* docker -u 2 && copyfiles \"packages/web/public/**/*\" docker -u 2 && copyfiles \"plugins/dist/**/*\" docker/plugins -u 2", "copy:packer:build": "copyfiles packages/api/dist/* packer/build -f && copyfiles packages/web/public/* packer/build -u 2 && copyfiles \"packages/web/public/**/*\" packer/build -u 2 && copyfiles \"plugins/dist/**/*\" packer/build/plugins -u 2 && copyfiles packer/install-packages.sh packer/build -f", - "install:drivers:docker": "cd docker && yarn init --yes && yarn add better-sqlite3 && yarn add oracledb && cd ..", + "install:drivers:docker": "node common/defineVolatileDependencies.js && cd docker && yarn install && cd ..", "prepare:docker": "yarn plugins:copydist && yarn build:web && yarn build:api && yarn copy:docker:build && yarn install:drivers:docker", "prepare:packer": "yarn plugins:copydist && yarn build:web && yarn build:api && yarn copy:packer:build", "start": "concurrently --kill-others-on-fail \"yarn start:api\" \"yarn start:web\"",