1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-15 07:43:35 +00:00

chore(dev): Switch to using build constant for isDev check

This commit is contained in:
Justin Baur
2025-09-05 19:12:21 -04:00
committed by GitHub
parent 1a0d3e3ada
commit 7eb89eb45a
7 changed files with 29 additions and 14 deletions

View File

@@ -20,9 +20,10 @@
"start": "cross-env ELECTRON_IS_DEV=0 ELECTRON_NO_UPDATER=1 electron ./build", "start": "cross-env ELECTRON_IS_DEV=0 ELECTRON_NO_UPDATER=1 electron ./build",
"build-native": "cd desktop_native && node build.js", "build-native": "cd desktop_native && node build.js",
"build": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:main\" \"npm run build:renderer\" \"npm run build:preload\"", "build": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:main\" \"npm run build:renderer\" \"npm run build:preload\"",
"build:dev": "concurrently -n Main,Rend -c yellow,cyan \"npm run build:main:dev\" \"npm run build:renderer:dev\"", "build:dev": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:main:dev\" \"npm run build:renderer:dev\" \"npm run build:preload:dev\"",
"build:preload": "cross-env NODE_ENV=production webpack --config webpack.preload.js", "build:preload": "cross-env NODE_ENV=production webpack --config webpack.preload.js",
"build:preload:watch": "cross-env NODE_ENV=production webpack --config webpack.preload.js --watch", "build:preload:dev": "cross-env NODE_ENV=development webpack --config webpack.preload.js",
"build:preload:watch": "cross-env NODE_ENV=development webpack --config webpack.preload.js --watch",
"build:macos-extension:mac": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js mac", "build:macos-extension:mac": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js mac",
"build:macos-extension:mas": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js mas", "build:macos-extension:mas": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js mas",
"build:macos-extension:masdev": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js mas-dev", "build:macos-extension:masdev": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js mas-dev",
@@ -55,15 +56,15 @@
"dist:mac:with-extension": "npm run build && npm run pack:mac:with-extension", "dist:mac:with-extension": "npm run build && npm run pack:mac:with-extension",
"dist:mac:mas": "npm run build && npm run pack:mac:mas", "dist:mac:mas": "npm run build && npm run pack:mac:mas",
"dist:mac:mas:with-extension": "npm run build && npm run pack:mac:mas:with-extension", "dist:mac:mas:with-extension": "npm run build && npm run pack:mac:mas:with-extension",
"dist:mac:masdev": "npm run build && npm run pack:mac:masdev", "dist:mac:masdev": "npm run build:dev && npm run pack:mac:masdev",
"dist:mac:masdev:with-extension": "npm run build && npm run pack:mac:masdev:with-extension", "dist:mac:masdev:with-extension": "npm run build:dev && npm run pack:mac:masdev:with-extension",
"dist:win": "npm run build && npm run pack:win", "dist:win": "npm run build && npm run pack:win",
"dist:win:ci": "npm run build && npm run pack:win:ci", "dist:win:ci": "npm run build && npm run pack:win:ci",
"publish:lin": "npm run build && npm run clean:dist && electron-builder --linux --x64 -p always", "publish:lin": "npm run build && npm run clean:dist && electron-builder --linux --x64 -p always",
"publish:mac": "npm run build && npm run clean:dist && electron-builder --mac -p always", "publish:mac": "npm run build && npm run clean:dist && electron-builder --mac -p always",
"publish:mac:mas": "npm run dist:mac:mas && npm run upload:mas", "publish:mac:mas": "npm run dist:mac:mas && npm run upload:mas",
"publish:win": "npm run build && npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p always -c.win.signtoolOptions.certificateSubjectName=\"8bit Solutions LLC\"", "publish:win": "npm run build && npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p always -c.win.signtoolOptions.certificateSubjectName=\"8bit Solutions LLC\"",
"publish:win:dev": "npm run build && npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p always", "publish:win:dev": "npm run build:dev && npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p always",
"upload:mas": "xcrun altool --upload-app --type osx --file \"$(find ./dist/mas-universal/Bitwarden*.pkg)\" --apiKey $APP_STORE_CONNECT_AUTH_KEY --apiIssuer $APP_STORE_CONNECT_TEAM_ISSUER", "upload:mas": "xcrun altool --upload-app --type osx --file \"$(find ./dist/mas-universal/Bitwarden*.pkg)\" --apiKey $APP_STORE_CONNECT_AUTH_KEY --apiIssuer $APP_STORE_CONNECT_TEAM_ISSUER",
"test": "jest", "test": "jest",
"test:watch": "jest --watch", "test:watch": "jest --watch",

View File

@@ -1,2 +1,10 @@
declare module "forcefocus"; declare module "forcefocus";
declare const ipc: typeof import("./preload").ipc; declare const ipc: typeof import("./preload").ipc;
/**
* Will be turned into a constant string in the main process only
* likely either `"development"` or `"production"`.
*
* This is done using the `DefinePlugin` in our webpack files.
*/
declare const BIT_ENVIRONMENT: string;

View File

@@ -15,7 +15,7 @@ jest.mock("@bitwarden/desktop-napi", () => {
describe("ElectronLogMainService", () => { describe("ElectronLogMainService", () => {
it("sets dev based on electron method", () => { it("sets dev based on electron method", () => {
process.env.ELECTRON_IS_DEV = "1"; globalThis.BIT_ENVIRONMENT = "development";
const logService = new ElectronLogMainService(); const logService = new ElectronLogMainService();
expect(logService).toEqual(expect.objectContaining({ isDev: true }) as any); expect(logService).toEqual(expect.objectContaining({ isDev: true }) as any);
}); });

View File

@@ -20,11 +20,7 @@ export function invokeMenu(menu: RendererMenuItem[]) {
} }
export function isDev() { export function isDev() {
// ref: https://github.com/sindresorhus/electron-is-dev return BIT_ENVIRONMENT === "development";
if ("ELECTRON_IS_DEV" in process.env) {
return parseInt(process.env.ELECTRON_IS_DEV, 10) === 1;
}
return process.defaultApp || /node_modules[\\/]electron[\\/]/.test(process.execPath);
} }
export function isLinux() { export function isLinux() {

View File

@@ -3,7 +3,7 @@ const { merge } = require("webpack-merge");
const CopyWebpackPlugin = require("copy-webpack-plugin"); const CopyWebpackPlugin = require("copy-webpack-plugin");
const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin"); const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin");
const configurator = require("./config/config"); const configurator = require("./config/config");
const { EnvironmentPlugin } = require("webpack"); const { EnvironmentPlugin, DefinePlugin } = require("webpack");
const NODE_ENV = process.env.NODE_ENV == null ? "development" : process.env.NODE_ENV; const NODE_ENV = process.env.NODE_ENV == null ? "development" : process.env.NODE_ENV;
@@ -76,6 +76,9 @@ const main = {
{ from: "./src/locales", to: "locales" }, { from: "./src/locales", to: "locales" },
], ],
}), }),
new DefinePlugin({
BIT_ENVIRONMENT: JSON.stringify(NODE_ENV),
}),
new EnvironmentPlugin({ new EnvironmentPlugin({
FLAGS: envConfig.flags, FLAGS: envConfig.flags,
DEV_FLAGS: NODE_ENV === "development" ? envConfig.devFlags : {}, DEV_FLAGS: NODE_ENV === "development" ? envConfig.devFlags : {},

View File

@@ -3,7 +3,7 @@ const { merge } = require("webpack-merge");
const CopyWebpackPlugin = require("copy-webpack-plugin"); const CopyWebpackPlugin = require("copy-webpack-plugin");
const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin"); const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin");
const configurator = require("./config/config"); const configurator = require("./config/config");
const { EnvironmentPlugin } = require("webpack"); const { EnvironmentPlugin, DefinePlugin } = require("webpack");
const NODE_ENV = process.env.NODE_ENV == null ? "development" : process.env.NODE_ENV; const NODE_ENV = process.env.NODE_ENV == null ? "development" : process.env.NODE_ENV;
@@ -21,7 +21,11 @@ const common = {
}, },
], ],
}, },
plugins: [], plugins: [
new DefinePlugin({
BIT_ENVIRONMENT: JSON.stringify(NODE_ENV),
}),
],
resolve: { resolve: {
extensions: [".tsx", ".ts", ".js"], extensions: [".tsx", ".ts", ".js"],
plugins: [new TsconfigPathsPlugin({ configFile: "./tsconfig.json" })], plugins: [new TsconfigPathsPlugin({ configFile: "./tsconfig.json" })],

View File

@@ -177,6 +177,9 @@ const renderer = {
filename: "[name].[contenthash].css", filename: "[name].[contenthash].css",
chunkFilename: "[id].[contenthash].css", chunkFilename: "[id].[contenthash].css",
}), }),
new webpack.DefinePlugin({
BIT_ENVIRONMENT: JSON.stringify(NODE_ENV),
}),
new webpack.EnvironmentPlugin({ new webpack.EnvironmentPlugin({
ENV: ENV, ENV: ENV,
FLAGS: envConfig.flags, FLAGS: envConfig.flags,