Skip to content

Releases: sapphi-red/vite-plugin-static-copy

vite-plugin-static-copy@4.1.0

19 Apr 11:07
e95cd6e

Choose a tag to compare

Minor Changes

  • #251 7672842 Thanks @sapphi-red! - Add name property to the rename object form and allow rename functions to return a RenameObject. The name property replaces the file's basename (filename + extension), and can be combined with stripBase to both flatten directory structure and rename the file in one step. Rename functions can now return { name, stripBase } objects instead of only strings, making it easier to declaratively control output paths from dynamic rename logic.

    // node_modules/lib/dist/index.js → vendor/lib.js
    { src: 'node_modules/lib/dist/index.js', dest: 'vendor', rename: { name: 'lib.js', stripBase: true } }
    
    // src/pages/events/test.html → dist/events/index.html
    { src: 'src/pages/**/*.html', dest: 'dist/', rename: { stripBase: 2, name: 'index.html' } }

vite-plugin-static-copy@4.0.1

04 Apr 09:15
7ae0134

Choose a tag to compare

Patch Changes

  • #249 c6bf44c Thanks @sapphi-red! - Fix absolute dest paths being nested under the output directory

    When dest was an absolute path and the source file had a directory component (structured output), the path was incorrectly converted to a relative path, causing files to be nested under the build output directory instead of being copied to the specified absolute path.

    { src: 'foo/foo.txt', dest: '/home/user/my-repo/bar' }

    Before: /home/user/my-repo/dist/home/user/my-repo/bar/foo/foo.txt
    After: /home/user/my-repo/bar/foo/foo.txt

  • #247 d3af79e Thanks @sapphi-red! - Fix rename.stripBase to work correctly with ../ paths

    Previously, stripBase counted .. as directory segments, causing incorrect output paths when copying from parent directories.

    { src: '../../src/pages/**/*.html', dest: 'dist/', rename: { stripBase: 2 } }

    Before: dist/src/pages/events/test.html
    After: dist/events/test.html

    { src: '../../src/pages/**/*.html', dest: 'dist/', rename: { stripBase: true } }

    Before: dist/src/pages/events/test.html
    After: dist/test.html

vite-plugin-static-copy@4.0.0

22 Mar 07:58
8b3f810

Choose a tag to compare

Major Changes

  • #235 b2edc86 Thanks @sapphi-red! - Simplify glob behavior and always preserve directory structure.

    Breaking changes:

    • Only files are matched. Glob patterns no longer match directory entries. Previously, matching a directory would recursively copy it via fs.cp, which caused files to be copied twice when using ** patterns.
    • Directory patterns are auto-expanded. src: 'assets' now automatically expands to match all files inside the directory, using tinyglobby's built-in expandDirectories option. No migration needed for this pattern alone.
    • structured option removed. Directory structure is now always preserved in the output. The structured option has been removed entirely. Use rename: { stripBase: true } to flatten output paths when needed.
  • #237 6129008 Thanks @sapphi-red! - Drop support for Vite 5

  • #238 9766e42 Thanks @sapphi-red! - Drop support for Node 18, 20, 21, 23. The new support range is ^22.0.0 || >= 24.0.0.

vite-plugin-static-copy@3.4.0

22 Mar 07:09
8ffb5ac

Choose a tag to compare

Minor Changes

  • #233 f665a15 Thanks @sapphi-red! - Add { stripBase: number } object form to the rename option. This strips the given number of leading directory segments from the matched path, avoiding the need for manual ../ traversals in a rename function.

    This is useful when copying files from deep paths like node_modules/my-lib/dist/**/* with structured: true, where the full directory structure would otherwise be preserved in the output. Instead of writing a rename function that manually returns ../ traversals to flatten unwanted nesting, you can use rename: { stripBase: N } to declaratively strip the leading segments.

vite-plugin-static-copy@3.3.0

13 Mar 08:52
ab0fe09

Choose a tag to compare

Minor Changes

vite-plugin-static-copy@3.2.0

27 Jan 03:10
95ae5d5

Choose a tag to compare

Minor Changes

  • #219 fbb2a7a Thanks @sapphi-red! - Add environment option to configure which environment the plugin runs in. Defaults to 'client'.

vite-plugin-static-copy@3.1.6

23 Jan 10:09
305c32e

Choose a tag to compare

Patch Changes

vite-plugin-static-copy@3.1.5

19 Jan 12:37
4746d00

Choose a tag to compare

Patch Changes

vite-plugin-static-copy@3.1.4

15 Oct 10:48
a7e8639

Choose a tag to compare

Patch Changes

  • #204 d0b5370 Thanks @stianjensen! - Removed fs-extra dependency in favor of node:fs. This should not affect the behavior.

vite-plugin-static-copy@3.1.3

01 Oct 03:46
f4da2cf

Choose a tag to compare

Patch Changes