feat: enable the ESM for main (#3588)

This commit is contained in:
JellyBrick
2025-07-10 13:43:13 +09:00
committed by GitHub
parent 51a87566e5
commit 6fdac6facf
5 changed files with 14 additions and 24 deletions

View File

@ -35,15 +35,16 @@ export default defineConfig({
}),
],
publicDir: 'assets',
define: {
'__dirname': 'import.meta.dirname',
'__filename': 'import.meta.filename',
},
build: {
lib: {
entry: 'src/index.ts',
formats: ['cjs'],
formats: ['es'],
},
outDir: 'dist/main',
commonjsOptions: {
ignoreDynamicRequires: true,
},
rollupOptions: {
external: ['electron', 'custom-electron-prompt', ...builtinModules],
input: './src/index.ts',
@ -148,9 +149,6 @@ export default defineConfig({
name: 'renderer',
},
outDir: 'dist/renderer',
commonjsOptions: {
ignoreDynamicRequires: true,
},
rollupOptions: {
external: ['electron', ...builtinModules],
input: './src/index.html',

View File

@ -5,6 +5,7 @@
"version": "3.9.0",
"description": "YouTube Music Desktop App - including custom plugins",
"main": "./dist/main/index.js",
"type": "module",
"license": "MIT",
"repository": "th-ch/youtube-music",
"author": {

View File

@ -74,9 +74,6 @@ unhandled({
showDialog: false,
});
// Disable Node options if the env var is set
process.env.NODE_OPTIONS = '';
// Prevent window being garbage collected
let mainWindow: Electron.BrowserWindow | null;
autoUpdater.autoDownload = false;
@ -361,7 +358,7 @@ async function createMainWindow() {
show: false,
webPreferences: {
contextIsolation: true,
preload: path.join(__dirname, '..', 'preload', 'preload.js'),
preload: path.join(__dirname, '..', 'preload', 'preload.cjs'),
...(isTesting()
? undefined
: {

View File

@ -1,10 +1,6 @@
/* eslint-disable @typescript-eslint/no-require-imports */
import { test, expect } from '@playwright/test';
// eslint-disable-next-line no-undef
const { test, expect } = require('@playwright/test');
// eslint-disable-next-line no-undef
const { sortSegments } = require('../segments');
import { sortSegments } from '../segments';
test('Segment sorting', () => {
expect(

View File

@ -1,13 +1,11 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const path = require('node:path');
const { _electron: electron } = require('playwright');
const { test, expect } = require('@playwright/test');
import path from 'node:path';
import process from 'node:process';
import { _electron as electron } from 'playwright';
import { test, expect } from '@playwright/test';
process.env.NODE_ENV = 'test';
const appPath = path.resolve(__dirname, '..');
const appPath = path.resolve(import.meta.dirname, '..');
test('YouTube Music App - With default settings, app is launched and visible', async () => {
const app = await electron.launch({