* Fix css plugin having inconsistent builds in different environments Astro's css plugin generates chunk ids that include a hash of all of the chunk's parent ids. These ids are currently the absolute file paths of the parent files. The generated chunk ids are then inserted into those pages as import statements. Because these import statements include a hash based on these absolute file paths, this causes rollup to generate different hashes for those pages when a build is run in different environments. The exact same project will produce identical assets with different filenames when built on different machines, or when built from different directories on the same machine, etc. To fix this, I've stripped out the working directory of these file paths before they are added to the hash. This means that the hash will still change if the files referencing it chacnge (which I believe is the intended behavior), but will be stable if the entire project is built in different environments. * add changeset * fixup! use settings.config.root and vite's normalizePath I've chosen to update the function signature of shortHashedName to match createSlugger's, so it now accepts the settings object and returns the actual hashing function. This way, createSlugger's function signature doesn't need to update to needlessly accept an additional argument. * fixup! remove unused import * Update .changeset/young-pillows-shave.md Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com> * fixup! use fileURLtoPath --------- Co-authored-by: Matt Lee <mdlee.md@gmail.com> Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com> |
||
---|---|---|
.changeset | ||
.devcontainer | ||
.github | ||
.gitpod | ||
.vscode | ||
benchmark | ||
examples | ||
packages | ||
scripts | ||
.editorconfig | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.gitpod.yml | ||
.npmrc | ||
.nvmrc | ||
.prettierignore | ||
biome.json | ||
CONTRIBUTING.md | ||
eslint.config.js | ||
LICENSE | ||
package.json | ||
pnpm-lock.yaml | ||
pnpm-workspace.yaml | ||
prettier.config.js | ||
README.md | ||
SECURITY.md | ||
SECURITY_CONTACTS | ||
STYLE_GUIDE.md | ||
tsconfig.base.json | ||
tsconfig.eslint.json | ||
tsconfig.json | ||
turbo.json |
Astro is a website build tool for the modern web —
powerful developer experience meets lightweight output.
Install
The recommended way to install the latest version of Astro is by running the command below:
npm create astro@latest
You can also install Astro manually by running this command instead:
npm install --save-dev astro
Looking for help? Start with our Getting Started guide.
Looking for quick examples? Open a starter project right in your browser.
Documentation
Visit our official documentation.
Support
Having trouble? Get help in the official Astro Discord.
Contributing
New contributors welcome! Check out our Contributors Guide for help getting started.
Join us on Discord to meet other maintainers. We'll help you get your first contribution in no time!
Directory
Several official projects are maintained outside of this repo:
Project | Repository |
---|---|
@astrojs/compiler | withastro/compiler |
Astro Language Tools | withastro/language-tools |
Links
Sponsors
Astro is free, open source software made possible by these wonderful sponsors.