create-vue
create-vue copied to clipboard
chore(deps): update all non-major dependencies
This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
@types/node | ^16.11.47 -> ^16.11.49 |
||||
@vitejs/plugin-vue | ^3.0.1 -> ^3.0.3 |
||||
cypress | ^10.4.0 -> ^10.5.0 |
||||
esbuild | ^0.14.53 -> ^0.15.3 |
||||
eslint (source) | ^8.21.0 -> ^8.22.0 |
||||
pinia | ^2.0.17 -> ^2.0.18 |
||||
vite | ^3.0.4 -> ^3.0.7 |
||||
vitest | ^0.21.0 -> ^0.22.0 |
||||
vue-tsc | ^0.39.5 -> ^0.40.1 |
Release Notes
evanw/esbuild
v0.15.3
-
Change the Yarn PnP manifest to a singleton (#2463)
Previously esbuild searched for the Yarn PnP manifest in the parent directories of each file. But with Yarn's
enableGlobalCache
setting it's possible to configure Yarn PnP's implementation to reach outside of the directory subtree containing the Yarn PnP manifest. This was causing esbuild to fail to bundle projects with theenableGlobalCache
setting enabled.To handle this case, esbuild will now only search for the Yarn PnP manifest in the current working directory of the esbuild process. If you're using esbuild's CLI, this means you will now have to
cd
into the appropriate directory first. If you're using esbuild's API, you can override esbuild's value for the current working directory with theabsWorkingDir
API option. -
Fix Yarn PnP resolution failures due to backslashes in paths on Windows (#2462)
Previously dependencies of a Yarn PnP virtual dependency failed to resolve on Windows. This was because Windows uses
\
instead of/
as a path separator, and the path manipulation algorithms used for Yarn PnP expected/
. This release converts\
into/
in Windows paths, which fixes this issue. -
Fix
sideEffects
patterns containing slashes on Windows (#2465)The
sideEffects
field inpackage.json
lets you specify an array of patterns to mark which files have side effects (which causes all other files to be considered to not have side effects by exclusion). That looks like this:"sideEffects": [ "**/index.js", "**/index.prod.js" ]
However, the presence of the
/
character in the pattern meant that the pattern failed to match Windows-style paths, which brokesideEffects
on Windows in this case. This release fixes this problem by adding additional code to handle Windows-style paths.
v0.15.2
-
Fix Yarn PnP issue with packages containing
index.js
(#2455, #2461)Yarn PnP's tests require the resolved paths to end in
/
. That's not how the rest of esbuild's internals work, however, and doing this messed up esbuild's node module path resolution regarding automatically-detectedindex.js
files. Previously packages that relied on implicitindex.js
resolution rules didn't work with esbuild under Yarn PnP. Removing this slash has fixed esbuild's path resolution behavior regardingindex.js
, which should now the same both with and without Yarn PnP. -
Fix Yarn PnP support for
extends
intsconfig.json
(#2456)Previously using
extends
intsconfig.json
with a path in a Yarn PnP package didn't work. This is because the process of setting up package path resolution rules requires parsingtsconfig.json
files (due to thebaseUrl
andpaths
features) and resolvingextends
to a package path requires package path resolution rules to already be set up, which is a circular dependency. This cycle is broken by using special rules forextends
intsconfig.json
that bypasses esbuild's normal package path resolution process. This is why usingextends
with a Yarn PnP package didn't automatically work. With this release, these special rules have been modified to check for a Yarn PnP manifest so this case should work now. -
Fix Yarn PnP support in
esbuild-wasm
(#2458)When running esbuild via WebAssembly, Yarn PnP support previously failed because Go's file system internals return
EINVAL
when trying to read a.zip
file as a directory when run with WebAssembly. This was unexpected because Go's file system internals returnENOTDIR
for this case on native. This release updates esbuild to treatEINVAL
likeENOTDIR
in this case, which fixes usingesbuild-wasm
to bundle a Yarn PnP project.Note that to be able to use
esbuild-wasm
for Yarn PnP successfully, you currently have to run it usingnode
instead ofyarn node
. This is because the file system shim that Yarn overwrites node's native file system API with currently generates invalid file descriptors with negative values when inside a.zip
file. This prevents esbuild from working correctly because Go's file system internals don't expect syscalls that succeed without an error to return an invalid file descriptor. Yarn is working on fixing their use of invalid file descriptors.
v0.15.1
-
Update esbuild's Yarn Plug'n'Play implementation to match the latest specification changes (#2452, #2453)
This release updates esbuild's implementation of Yarn Plug'n'Play to match some changes to Yarn's specification that just landed. The changes are as follows:
-
Check for platform-specific absolute paths instead of always for the
/
prefixThe specification previously said that Yarn Plug'n'Play path resolution rules should not apply for paths that start with
/
. The intent was to avoid accidentally processing absolute paths. However, absolute paths on Windows such asC:\project
start with drive letters instead of with/
. So the specification was changed to instead explicitly avoid processing absolute paths. -
Make
$$virtual
an alias for__virtual__
Supporting Yarn-style path resolution requires implementing a custom Yarn-specific path traversal scheme where certain path segments are considered no-ops. Specifically any path containing segments of the form
__virtual__/<whatever>/<n>
where<n>
is an integer must be treated as if they weren
times the..
operator instead (the<whatever>
path segment is ignored). So/path/to/project/__virtual__/xyz/2/foo.js
maps to the underlying file/path/to/project/../../foo.js
. This scheme makes it possible for Yarn to get node (and esbuild) to load the same file multiple times (which is sometimes required for correctness) without actually duplicating the file on the file system.However, old versions of Yarn used to use
$$virtual
instead of__virtual__
. This was changed because$$virtual
was error-prone due to the use of the$
character, which can cause bugs when it's not correctly escaped within regular expressions. Now that esbuild makes$$virtual
an alias for__virtual__
, esbuild should now work with manifests from these old Yarn versions. -
Ignore PnP manifests in virtual directories
The specification describes the algorithm for how to find the Plug'n'Play manifest when starting from a certain point in the file system: search through all parent directories in reverse order until the manifest is found. However, this interacts poorly with virtual paths since it can end up finding a virtual copy of the manifest instead of the original. To avoid this, esbuild now ignores manifests in virtual directories so that the search for the manifest will continue and find the original manifest in another parent directory later on.
These fixes mean that esbuild's implementation of Plug'n'Play now matches Yarn's implementation more closely, and esbuild can now correctly build more projects that use Plug'n'Play.
-
v0.15.0
This release contains backwards-incompatible changes. Since esbuild is before version 1.0.0, these changes have been released as a new minor version to reflect this (as recommended by npm). You should either be pinning the exact version of esbuild
in your package.json
file or be using a version range syntax that only accepts patch upgrades such as ~0.14.0
. See the documentation about semver for more information.
-
Implement the Yarn Plug'n'Play module resolution algorithm (#154, #237, #1263, #2451)
Node comes with a package manager called npm, which installs packages into a
node_modules
folder. Node and esbuild both come with built-in rules for resolving import paths to packages withinnode_modules
, so packages installed via npm work automatically without any configuration. However, many people use an alternative package manager called Yarn. While Yarn can install packages usingnode_modules
, it also offers a different package installation strategy called Plug'n'Play, which is often shortened to "PnP" (not to be confused with pnpm, which is an entirely different unrelated package manager).Plug'n'Play installs packages as
.zip
files on your file system. The packages are never actually unzipped. Since Node doesn't know anything about Yarn's package installation strategy, this means you can no longer run your code with Node as it won't be able to find your packages. Instead, you need to run your code with Yarn, which applies patches to Node's file system APIs before running your code. These patches attempt to make zip files seem like normal directories. When running under Yarn, using Node's file system API to read./some.zip/lib/file.js
actually automatically extractslib/file.js
from./some.zip
at run-time as if it was a normal file. Other file system APIs behave similarly. However, these patches don't work with esbuild because esbuild is not written in JavaScript; it's a native binary executable that interacts with the file system directly through the operating system.Previously the workaround for using esbuild with Plug'n'Play was to use the
@yarnpkg/esbuild-plugin-pnp
plugin with esbuild's JavaScript API. However, this wasn't great because the plugin needed to potentially intercept every single import path and file load to check whether it was a Plug'n'Play package, which has an unusually high performance cost. It also meant that certain subtleties of path resolution rules within a.zip
file could differ slightly from the way esbuild normally works since path resolution inside.zip
files was implemented by Yarn, not by esbuild (which is due to a limitation of esbuild's plugin API).With this release, esbuild now contains an independent implementation of Yarn's Plug'n'Play algorithm (which is used when esbuild finds a
.pnp.js
,.pnp.cjs
, or.pnp.data.json
file in the directory tree). Creating additional implementations of this algorithm recently became possible because Yarn's package manifest format was recently documented: https://yarnpkg.com/advanced/pnp-spec/. This should mean that you can now use esbuild to bundle Plug'n'Play projects without any additional configuration (so you shouldn't need@yarnpkg/esbuild-plugin-pnp
anymore). Bundling these projects should now happen much faster as Yarn no longer even needs to be run at all. Bundling the Yarn codebase itself with esbuild before and after this change seems to demonstrate over a 10x speedup (3.4s to 0.24s). And path resolution rules within Yarn packages should now be consistent with how esbuild handles regular Node packages. For example, fields such asmodule
andbrowser
inpackage.json
files within.zip
files should now be respected.Keep in mind that this is brand new code and there may be some initial issues to work through before esbuild's implementation is solid. Yarn's Plug'n'Play specification is also brand new and may need some follow-up edits to guide new implementations to match Yarn's exact behavior. If you try this out, make sure to test it before committing to using it, and let me know if anything isn't working as expected. Should you need to debug esbuild's path resolution, you may find
--log-level=verbose
helpful.
v0.14.54
-
Fix optimizations for calls containing spread arguments (#2445)
This release fixes the handling of spread arguments in the optimization of
/* @​__PURE__ */
comments, empty functions, and identity functions:// Original code function empty() {} function identity(x) { return x } /* @​__PURE__ */ a(...x) /* @​__PURE__ */ new b(...x) empty(...x) identity(...x) // Old output (with --minify --tree-shaking=true) ...x;...x;...x;...x; // New output (with --minify --tree-shaking=true) function identity(n){return n}[...x];[...x];[...x];identity(...x);
Previously esbuild assumed arguments with side effects could be directly inlined. This is almost always true except for spread arguments, which are not syntactically valid on their own and which have the side effect of causing iteration, which might have further side effects. Now esbuild will wrap these elements in an unused array so that they are syntactically valid and so that the iteration side effects are preserved.
eslint/eslint
v8.22.0
Features
-
2b97607
feat: Implement caching for FlatESLint (#16190) (Nicholas C. Zakas) -
fd5d3d3
feat: addmethodsIgnorePattern
option to object-shorthand rule (#16185) (Milos Djermanovic)
Documentation
-
9f5a752
docs: optimize image assets (#16170) (Sam Chen) -
61b2948
docs: add svgo command to pre commit hook (#16178) (Amaresh S M) -
784096d
docs: improve search result UI (#16187) (Sam Chen) -
d0f4cb4
docs: use shorthand property name in example (#16180) (Kevin Elliott)
Chores
vitejs/vite (vite)
v3.0.7
- chore: fix typo in error message (#9645) (7121ee0), closes #9645
- fix(config): don't use file url for external files with cjs output (#9642) (73ad707), closes #9642
v3.0.6
- chore: narrow down rollup version (#9637) (fcf4d98), closes #9637
- feat: show warning on 431 response (#9324) (e8b61bb), closes #9324
- fix: avoid using
import.meta.url
for relative assets if output is not ESM (fixes #9297) (#9381) (6d95225), closes #9297 #9381 - fix: json HMR (fixes #9521) (#9610) (e45d95f), closes #9521 #9610
- fix: legacy no emit worker (#9500) (9d0b18b), closes #9500
- fix: use browser field if it is not likely UMD or CJS (fixes #9445) (#9459) (c868e64), closes #9445 #9459
- fix(optimizer): ignore EACCES errors while scanner (fixes #8916) (#9509) (4e6a77f), closes #8916 #9509
- fix(ssr): rename objectPattern dynamic key (fixes #9585) (#9609) (ee7f78f), closes #9585 #9609
v3.0.5
- fix: allow tree-shake glob eager css in js (#9547) (2e309d6), closes #9547
- fix: ignore tsconfig target when bundling config (#9457) (c5e7895), closes #9457
- fix: log worker plugins in debug mode (#9553) (c1fa219), closes #9553
- fix: tree-shake modulepreload polyfill (#9531) (1f11a70), closes #9531
- fix: update dep types (fixes #9475) (#9489) (937cecc), closes #9475 #9489
- fix(build): normalized output log (#9594) (8bae103), closes #9594
- fix(config): try catch unlink after load (#9577) (d35a1e2), closes #9577
- fix(config): use file url for import path (fixes #9471) (#9473) (22084a6), closes #9471 #9473
- fix(deps): update all non-major dependencies (#9575) (8071325), closes #9575
- fix(ssr): check root import extension for external (#9494) (ff89df5), closes #9494
- fix(ssr): use appendRight for import (#9554) (dfec6ca), closes #9554
- refactor(resolve): remove commonjs plugin handling (#9460) (2042b91), closes #9460
- chore: init imports var before use (#9569) (905b8eb), closes #9569
- chore: node prefix lint (#9514) (9e9cd23), closes #9514
- chore: tidy up eslint config (#9468) (f4addcf), closes #9468
- chore(deps): update all non-major dependencies (#9478) (c530d16), closes #9478
- docs: fix incomplete comment (#9466) (5169c51), closes #9466
- feat(ssr): debug failed node resolve (#9432) (364aae1), closes #9432
vitest-dev/vitest
v0.22.0
🚨 Breaking Changes
-
c8
coverage support now require peer dependency@vitest/coverage-c8
to be installed. Alternatively, you can install@vitest/coverage-istanbul
to useistanbul
for coverage instead ofc8
.
🚀 Features
- Add --no-color to cli - by @jereklas in https://github.com/vitest-dev/vitest/issues/1849
- Support auto retry on Node segfault
--segfault-retry
- by @antfu in https://github.com/vitest-dev/vitest/issues/1854 - Support
istanbul
coverage provider - by @AriPerkkio and @antfu in https://github.com/vitest-dev/vitest/issues/1676 -
cli: Support passing
--inspect
and--inspect-brk
- by @antfu (ea80f)
🐞 Bug Fixes
- Handle undefined returns of module mocks, and update migration docs - by @jereklas in https://github.com/vitest-dev/vitest/issues/1763 and https://github.com/vitest-dev/vitest/issues/1830
- Clear pattern when rerun all tests - by @ChpShy in https://github.com/vitest-dev/vitest/issues/1834
- reporter-junit: Remove trailing zeros in duration - by @nieyuyao in https://github.com/vitest-dev/vitest/issues/1842
View changes on GitHub
v0.21.1
🚀 Features
- types: Better local test context support - by @Tanimodori in https://github.com/vitest-dev/vitest/issues/1805
🐞 Bug Fixes
- Symbol.toStringTag on Module is non-enumerable - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/1808
- Tap reporter doesn't throw - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/1810
- Add error message when mock is missing export - by @jereklas in https://github.com/vitest-dev/vitest/issues/1819
View changes on GitHub
johnsoncodehk/volar
v0.40.1
- fix: component context types missing in template if no script block (#1688)
- fix: organize imports added invalid code (#1692)
- fix: v-else template interpolation missing in virtual code (#1694)
- fix: template interpolation formatting broken (#1697)
- fix: inline css intellisense not working
Our Sponsors
v0.40.0
- feat: support document highlights cross
<script>
,<template>
(#462) - feat: support reference types from script setup in template (#891)
- feat: support auto import in template (#823)
- feat: support plugin api (#185) (#1687)
- fix: template scope variables completion missing (#1284)
- fix: prefer
defineComponent
instead ofVue.extend
to wrap component options by default (#1584) - fix: bracket pair colorization in VSCode v1.70 (#1677)
Configuration
📅 Schedule: Branch creation - "before 3am on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
- [ ] If you want to rebase/retry this PR, click this checkbox.
This PR has been generated by Mend Renovate. View repository job log here.