@lynx-js/rspeedy

0.9.9

Patch Changes

  • Set optimization.emitOnErrors when DEBUG is enabled. (#1000)

    This is useful for debugging PrimJS Syntax error.

0.9.8

Patch Changes

  • Fix the "SyntaxError: invalid redefinition of parameter name" error. (#949)

    Remove the default output.iife: false from Rspack.

0.9.7

Patch Changes

  • The default value of output.inlineScripts should be true. (#915)

  • Updated dependencies [c210b79]:

    • @lynx-js/chunk-loading-webpack-plugin@0.3.0

0.9.6

Patch Changes

  • Support output.inlineScripts, which controls whether to inline scripts into Lynx bundle (.lynx.bundle). (#874)

    Only background thread scripts can remain non-inlined, whereas the main thread script is always inlined.

    example:

    import { defineConfig } from '@lynx-js/rspeedy'
    
    export default defineConfig({
      output: {
        inlineScripts: false,
      },
    })
  • Bump Rsbuild v1.3.21 with Rspack v1.3.11. (#863)

  • Updated dependencies [5b67bde]:

    • @lynx-js/chunk-loading-webpack-plugin@0.2.1

0.9.5

Patch Changes

  • Support source.preEntry. (#750)

    Add a script before the entry file of each page. This script will be executed before the page code. It can be used to execute global logics, such as injecting polyfills, setting global styles, etc.

    example:

    import { defineConfig } from '@lynx-js/rspeedy'
    export default defineConfig({
      source: {
        preEntry: './src/polyfill.ts',
      },
    })
  • Bump Rsbuild v1.3.20 with Rspack v1.3.10. (#799)

  • Add callerName option to createRspeedy. (#757)

    It can be accessed by Rsbuild plugins through api.context.callerName, and execute different logic based on this identifier.

    export const myPlugin = {
      name: 'my-plugin',
      setup(api) {
        const { callerName } = api.context
    
        if (callerName === 'rslib') {
          // ...
        } else if (callerName === 'rspeedy') {
          // ...
        }
      },
    }
  • Support performance.buildCache. (#766)

  • Updated dependencies [fbc4fbb]:

    • @lynx-js/webpack-dev-transport@0.1.3

0.9.4

Patch Changes

  • Bump Rsbuild v1.3.17 with Rspack v1.3.9. (#708)

  • Support performance.profile. (#691)

  • Support CLI flag --mode to specify the build mode. (#723)

  • Enable native Rsdoctor plugin by default. (#688)

    Set tools.rsdoctor.experiments.enableNativePlugin to false to use the old JS plugin.

    import { defineConfig } from '@lynx-js/rspeedy'
    
    export default defineConfig({
      tools: {
        rsdoctor: {
          experiments: {
            enableNativePlugin: false,
          },
        },
      },
    })

    See Rsdoctor - 1.0 for more details.

  • Bump Rsbuild v1.3.14 with Rspack v1.3.8. (#630)

0.9.3

Patch Changes

  • Bump Rsbuild v1.3.11 with Rspack v1.3.6. (#594)

0.9.2

Patch Changes

  • Support CLI option --no-env to disable loading of .env files (#483)

  • Bump Rsbuild v1.3.8 with Rspack v1.3.5. (#579)

0.9.1

Patch Changes

  • Bump Rsbuild v1.3.5 with Rspack v1.3.3. (#467)

0.9.0

Minor Changes

  • Bundle Rspeedy with Rslib for faster start-up times. (#395)

    This would be a BREAKING CHANGE for using global version of Rspeedy.

    Please ensure that you update your globally installed version of Rspeedy:

    npm install --global @lynx-js/rspeedy@latest
  • Bump Rsbuild v1.3.2 with Rspack v1.3.1 (#446)

  • BREAKING CHANGE: Added explicit TypeScript peer dependency requirement of 5.1.6 - 5.8.x. (#480)

    This formalizes the existing TypeScript version requirement in peerDependencies (marked as optional since it is only needed for TypeScript configurations). The actual required TypeScript version has not changed.

    Note: This may cause installation to fail if you have strict peer dependency checks enabled.

    Node.js v22.7+ users can bypass TypeScript installation using --experimental-transform-types or --experimental-strip-types flags. Node.js v23.6+ users don't need any flags. See Node.js - TypeScript for details.

Patch Changes

  • Support CLI flag --base to specify the base path of the server. (#387)

  • Support CLI flag --environment to specify the name of environment to build (#462)

  • Select the most appropriate network interface. (#457)

    This is a port of webpack/webpack-dev-server#5411.

  • Support Node.js v23.6+ native TypeScript. (#481)

    See Node.js - TypeScript for more details.

  • Support CLI flag --env-mode to specify the env mode to load the .env.[mode] file. (#453)

  • Support dev.hmr and dev.liveReload. (#458)

  • Updated dependencies [df63722, df63722]:

    • @lynx-js/chunk-loading-webpack-plugin@0.2.0

0.8.7

Patch Changes

  • Support using -debugids in output.sourceMap.js. (#342)

    See Source Map Debug ID Proposal for more details.

  • Use chunkLoading: 'import-scripts' for Web platform (#352)

  • Support output.distPath.*. (#366)

    See Rsbuild - distPath for all available options.

  • Support performance.printFileSize (#336)

    Whether to print the file sizes after production build.

0.8.6

Patch Changes

  • Support dev.progressBar (#307)

    Whether to display progress bar during compilation.

    Defaults to true.

  • support load .env file by default (#233)

  • Support server.strictPort (#303)

    When a port is occupied, Rspeedy will automatically increment the port number until an available port is found.

    Set strictPort to true and Rspeedy will throw an exception when the port is occupied.

0.8.5

Patch Changes

  • Bump Rsdoctor v1.0.0. (#250)

0.8.4

Patch Changes

  • Bump Rsbuild v1.2.19 with Rspack v1.2.8 (#168)

  • Add mergeRspeedyConfig function for merging multiple Rspeedy configuration object. (#169)

  • Bump Rsdoctor v1.0.0-rc.0 (#186)

  • Support configure the base path of the server. (#196)

    By default, the base path of the server is /, and users can access lynx bundle through http://<host>:<port>/main.lynx.bundle If you want to access lynx bundle through http://<host>:<port>/foo/main.lynx.bundle, you can change server.base to /foo

    example:

    import { defineConfig } from '@lynx-js/rspeedy'
    export default defineConfig({
      server: {
        base: '/dist',
      },
    })
  • Updated dependencies [b026c8b]:

    • @lynx-js/webpack-dev-transport@0.1.2

0.8.3

Patch Changes

  • Support NPM provenance. (#30)

  • Fix error "'wmic' is not recognized as an internal or external command" (#91)

  • Bump Rsbuild v1.2.15 with Rspack v1.2.7. (#44)

  • Updated dependencies [c617453]:

    • @lynx-js/chunk-loading-webpack-plugin@0.1.7
    • @lynx-js/webpack-dev-transport@0.1.1
    • @lynx-js/websocket@0.0.4

0.8.2

Patch Changes

  • 1abf8f0: feat(rspeedy): support generateStatsFile
  • 1abf8f0: Bump Rsbuild v1.2.11 with Rspack v1.2.3

0.8.1

Patch Changes

  • 2d15b44: fix: default value of output.filename changes to be [name].[platform].bundle.
  • 2c88797: Disable tree-shaking in development.
  • 1472918: Remove output.minify.jsOptions.exclude.
  • 9da942e: Fix HMR connection lost after restart development server.
  • Updated dependencies [9da942e]
    • @lynx-js/webpack-dev-transport@0.1.0

0.8.0

Minor Changes

  • 3319e0f: BREAKING CHANGE: Use cssnano by default.

    We enable CSS minification in v0.7.0 and use Lightning CSS by default. But there are cases that Lightning CSS produce CSS that cannot be used in Lynx.

    Now, the default CSS minifier is switched to cssnano using @rsbuild/plugin-css-minimizer.

    You can switch to other tools by using:

    import { defineConfig } from '@lynx-js/rspeedy'
    import {
      CssMinimizerWebpackPlugin,
      pluginCssMinimizer,
    } from '@rsbuild/plugin-css-minimizer'
    
    export default defineConfig({
      plugins: [
        pluginCssMinimizer({
          pluginOptions: {
            minify: CssMinimizerWebpackPlugin.esbuildMinify,
            minimizerOptions: {
              /** Custom options */
            },
          },
        }),
      ],
    })

    See @rsbuild/plugin-css-minimizer for details.

  • 3319e0f: BREAKING CHANGE: Remove output.minify.cssOptions.

    You can use custom options with @rsbuild/plugin-css-minimizer:

    import { defineConfig } from '@lynx-js/rspeedy'
    import { pluginCssMinimizer } from '@rsbuild/plugin-css-minimizer'
    
    export default defineConfig({
      plugins: [
        pluginCssMinimizer({
          pluginOptions: {
            minimizerOptions: {
              /** Custom options */
            },
          },
        }),
      ],
    })

0.7.1

Patch Changes

  • 58607e4: Correct the handling of dev.assetPrefix to ensure it accurately reflects the server.port when the specified port is already in use.

0.7.0

Minor Changes

  • e2e23e2: Deprecated output.filename.template, use output.filename.bundle instead.

  • e2e23e2: BREAKING CHANGE: Change the default output.filename to [name].lynx.bundle.

  • a589e2e: BREAKING CHANGE: Enable CSS minification by default.

    You may turn it off using output.minify.css: false:

    import { defineConfig } from '@lynx-js/rspeedy'
    
    export default defineConfig({
      output: {
        minify: {
          css: false,
        },
      },
    })

    Or you may use @rsbuild/plugin-css-minimizer to use cssnano as CSS minimizer.

    import { defineConfig } from '@lynx-js/rspeedy'
    import { pluginCssMinimizer } from '@rsbuild/plugin-css-minimizer'
    
    export default defineConfig({
      plugins: [pluginCssMinimizer()],
    })
  • 525554c: BREAKING CHANGE: Bump ts-blank-space to ^0.6.0.

    Drop support for legacy module namespaces, see microsoft/TypeScript#51825 for details.

Patch Changes

  • 59bba00: Bump Rsbuild v1.2.7 with Rspack v1.2.3.
  • a589e2e: Add output.minify.css and output.minify.cssOptions.
  • 6de1176: feat(rspeedy/core): Introduce source.assetsInclude to allow the inclusion of additional files to be processed as static assets

0.6.0

Minor Changes

  • 2f5c499: Bump Rsbuild v1.2.4 with Rspack v1.2.2

Patch Changes

  • 5ead4b8: Support type: 'reload-server' in dev.watchFiles.

    • The default type: 'reload-page' will reload the Lynx page when it detects changes in the specified files.
    • The new type: 'reload-server' will restart the development server when it detects changes in the specified files.
    import { defineConfig } from '@lynx-js/rspeedy'
    
    export default defineConfig({
      dev: {
        watchFiles: [
          {
            type: 'reload-server',
            paths: ['public/**/*.txt'],
          },
          {
            type: 'reload-page',
            paths: ['public/**/*.json'],
          },
        ],
      },
    })
  • be9b003: Add source.exclude.

  • 2643477: Add performance.removeConsole.

0.5.10

Patch Changes

  • Updated dependencies [65ecd41]
    • @lynx-js/chunk-loading-webpack-plugin@0.1.6

0.5.9

Patch Changes

  • cb337de: Add source.decorators.

    You may use source.decorators.version: '2022-03' for using Stage 3 decorator proposal.

    Or use source.decorators.version: 'legacy' for using TypeScript's experimentalDecorators: true.

    See How does this proposal compare to other versions of decorators? for details.

    • @lynx-js/chunk-loading-webpack-plugin@0.1.5

0.5.8

Patch Changes

  • 30096c9: Exclude minify for template.js of lazy bundle to avoid build error.
  • Updated dependencies [0067512]
    • @lynx-js/chunk-loading-webpack-plugin@0.1.4

0.5.7

Patch Changes

  • 80a892c: Bump Rsbuild v1.1.13.

0.5.6

Patch Changes

  • ee6ed69: Bump Rsbuild v1.1.12 with Rspack v1.1.8.
  • 8f91e6c: Add exit to plugin api.

0.5.5

Patch Changes

  • 9279ce1: Bump Rsbuild v1.1.10 with Rspack v1.1.6.