diff --git a/programs/develop/webpack/dev-server.ts b/programs/develop/webpack/dev-server.ts index decdda8a..4dfb0381 100644 --- a/programs/develop/webpack/dev-server.ts +++ b/programs/develop/webpack/dev-server.ts @@ -41,7 +41,11 @@ export async function devServer( const serverConfig: Configuration = { host: '127.0.0.1', allowedHosts: 'all', - static: path.join(projectPath, 'public'), + static: { + watch: { + ignored: /\bnode_modules\b/ + } + }, compress: false, devMiddleware: { writeToDisk: true diff --git a/programs/develop/webpack/plugin-extension/feature-manifest/steps/add-dependencies.ts b/programs/develop/webpack/plugin-extension/feature-manifest/steps/add-dependencies.ts index bf2f207e..0ffeedd6 100644 --- a/programs/develop/webpack/plugin-extension/feature-manifest/steps/add-dependencies.ts +++ b/programs/develop/webpack/plugin-extension/feature-manifest/steps/add-dependencies.ts @@ -10,7 +10,7 @@ export class AddDependencies { apply(compiler: Compiler): void { compiler.hooks.afterCompile.tap( - 'ManifestPlugin (AddDependenciesPlugin)', + 'manifest:add-dependency', (compilation) => { if (compilation.errors?.length) return diff --git a/programs/develop/webpack/plugin-extension/feature-web-resources/index.ts b/programs/develop/webpack/plugin-extension/feature-web-resources/index.ts index e8218b82..bf08d3c2 100644 --- a/programs/develop/webpack/plugin-extension/feature-web-resources/index.ts +++ b/programs/develop/webpack/plugin-extension/feature-web-resources/index.ts @@ -130,7 +130,7 @@ export class WebResourcesPlugin { chunkGraph.getChunkModulesIterable(chunk) ) - modules.forEach((module) => { + modules.forEach((_module) => { // Rspack does not provide `getModuleChunks` API. chunk.files.forEach((file) => { if (!importedFiles.includes(file)) { diff --git a/programs/develop/webpack/plugin-reload/steps/setup-firefox-reload-client/index.ts b/programs/develop/webpack/plugin-reload/steps/setup-firefox-reload-client/index.ts index 2b300f35..ab80420d 100644 --- a/programs/develop/webpack/plugin-reload/steps/setup-firefox-reload-client/index.ts +++ b/programs/develop/webpack/plugin-reload/steps/setup-firefox-reload-client/index.ts @@ -1,6 +1,6 @@ import path from 'path' import {type Compiler} from '@rspack/core' -import { DevOptions } from '../../../../module' +import {DevOptions} from '../../../../module' export function SetupFirefoxReloadClient( compiler: Compiler, diff --git a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/index.ts b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/index.ts index 5544b98d..20725e6e 100644 --- a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/index.ts +++ b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/index.ts @@ -36,10 +36,10 @@ class SetupReloadStrategy { }).apply(compiler) // 3 - Add the HMR reloader to the entry point. - // new TargetWebExtensionPlugin({ - // manifestPath: this.manifestPath, - // browser: this.browser - // }).apply(compiler) + new TargetWebExtensionPlugin({ + manifestPath: this.manifestPath, + browser: this.browser + }).apply(compiler) } } diff --git a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/index.ts b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/index.ts index a3293327..bb622596 100644 --- a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/index.ts +++ b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/index.ts @@ -1,7 +1,7 @@ import fs from 'fs' import path from 'path' import {type Compiler} from '@rspack/core' -import {WebExtensionPlugin} from './rspack-target-webextension' +// import {WebExtensionPlugin} from './rspack-target-webextension' import {type PluginInterface} from '../../../reload-types' import {type Manifest} from '../../../../webpack-types' import {type DevOptions} from '../../../../../commands/dev' @@ -116,19 +116,19 @@ export class TargetWebExtensionPlugin { } } - private getEntryName(manifest: Manifest) { - if (manifest.background) { - if (manifest.manifest_version === 3) { - return {serviceWorkerEntry: 'background/service_worker'} - } + // private getEntryName(manifest: Manifest) { + // if (manifest.background) { + // if (manifest.manifest_version === 3) { + // return {serviceWorkerEntry: 'background/service_worker'} + // } - if (manifest.manifest_version === 2) { - return {pageEntry: 'background/script'} - } - } + // if (manifest.manifest_version === 2) { + // return {pageEntry: 'background/script'} + // } + // } - return {pageEntry: 'background'} - } + // return {pageEntry: 'background'} + // } public apply(compiler: Compiler) { if (!this.manifestPath || !fs.lstatSync(this.manifestPath).isFile()) { diff --git a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/ChunkLoader.ts b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/ChunkLoader.ts index 132c09b7..a196d3c4 100644 --- a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/ChunkLoader.ts +++ b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/ChunkLoader.ts @@ -15,7 +15,7 @@ export class ChuckLoaderRuntimePlugin { } apply(compiler: Compiler) { - const {RuntimeGlobals, Template} = compiler.webpack + const {RuntimeGlobals /*, Template */} = compiler.webpack const {options} = this compiler.hooks.compilation.tap( diff --git a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/HMRDevServer.ts b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/HMRDevServer.ts index 1f99b5b6..870c7d25 100644 --- a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/HMRDevServer.ts +++ b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/HMRDevServer.ts @@ -1,14 +1,13 @@ -import {Compiler} from '@rspack/core' +import {Compiler, RspackOptionsNormalized} from '@rspack/core' -// @ts-check export class HMRDevServerPlugin { apply(compiler: Compiler) { - const options = compiler.options + const options = compiler.options as RspackOptionsNormalized if (!options.devServer) options.devServer = {} const devServer = options.devServer setDefault(devServer, 'devMiddleware', {}) - // Extensions cannot be loaded over network + // Extensions cannot be loaded over the network setDefault(devServer.devMiddleware!, 'writeToDisk', true) if (!devServer.hot) return @@ -22,13 +21,13 @@ export class HMRDevServerPlugin { } }) - const devServerClient = devServer.client! as Record - // Overlay doesn't work well in content script. + const devServerClient = devServer.client as Record + // Overlay doesn't work well in content scripts. setDefault(devServerClient, 'overlay', false) - // Progress is annoying in console. + // Progress is annoying in the console. setDefault(devServerClient, 'progress', false) // In content script loaded in https:// pages, it will try to use wss:// because of protocol detection. - setDefault(devServer!, 'webSocketServer', 'ws') + setDefault(devServerClient, 'webSocketTransport', 'ws') // HMR requires CORS requests in content scripts. setDefault(devServer, 'allowedHosts', 'all') @@ -44,10 +43,16 @@ export class HMRDevServerPlugin { } } -function setDefault(obj: Record, key: string | number, val: any) { - if (isObject(obj) && obj[key] === undefined) obj[key] = val +function setDefault( + obj: T, + key: K, + val: T[K] +) { + if (isObject(obj) && obj[key] === undefined) { + (obj as any)[key] = val + } } -function isObject(x: any): x is Record { +function isObject(x: unknown): x is Record { return typeof x === 'object' && x !== null } diff --git a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/RuntimeModules/LoadScript.ts b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/RuntimeModules/LoadScript.ts index 974e1c46..4913e7c9 100644 --- a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/RuntimeModules/LoadScript.ts +++ b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/RuntimeModules/LoadScript.ts @@ -1,5 +1,4 @@ -import {rspack, Compilation, sources} from '@rspack/core' -import BrowserRuntime from '../BrowserRuntime' +import {rspack, sources} from '@rspack/core' // import() const DYNAMIC_IMPORT_LOADER = 'dynamicImportLoader' @@ -13,7 +12,7 @@ export function LoadScriptRuntimeModule( rspackLib: typeof rspack, supportDynamicImport: boolean | undefined, classicLoaderEnabled: boolean | undefined, - acceptWeak: boolean + _acceptWeak: boolean ) { const {Template, RuntimeGlobals} = rspackLib diff --git a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/RuntimeModules/PublicPath.ts b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/RuntimeModules/PublicPath.ts index a4015c74..16653bd1 100644 --- a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/RuntimeModules/PublicPath.ts +++ b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/RuntimeModules/PublicPath.ts @@ -1,4 +1,4 @@ -import {rspack, Compilation, sources} from '@rspack/core' +import {rspack, Compilation} from '@rspack/core' import BrowserRuntime from '../BrowserRuntime' export function PublicPathRuntimeModule( diff --git a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/ServiceWorkerPlugin.ts b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/ServiceWorkerPlugin.ts index 46524b0e..08c58f1a 100644 --- a/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/ServiceWorkerPlugin.ts +++ b/programs/develop/webpack/plugin-reload/steps/setup-reload-strategy/target-web-extension-plugin/rspack-target-webextension/ServiceWorkerPlugin.ts @@ -14,7 +14,7 @@ export class ServiceWorkerEntryPlugin { apply(compiler: Compiler) { compiler.hooks.entryOption.tap( ServiceWorkerEntryPlugin.name, - (context, entries) => { + (_context, entries) => { if (typeof entries === 'function') { if (this.options.noWarningDynamicEntry) return @@ -44,7 +44,7 @@ export class ServiceWorkerEntryPlugin { (compilation: Compilation) => { compilation.hooks.optimizeChunkModules.tap( ServiceWorkerEntryPlugin.name, - (chunks, chunkGraph) => { + () => { const entryPoint = compilation.entrypoints.get(this.entry) if (!entryPoint) return @@ -107,7 +107,7 @@ export class ServiceWorkerEntryPlugin { } // Helper functions -function chunkHasJs(chunk: Chunk, compilation: Compilation): boolean { +function chunkHasJs(chunk: Chunk): boolean { for (const file of chunk.files) { if (file.endsWith('.js')) { return true