![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
@davidlj95/website-v2
Advanced tools
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
This project was generated with Angular CLI version 16.2.0.
First, run the prebuild
command, to generate files that are required for the app to work
yarn run prebuild
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The application will automatically reload if you
change any of the source files.
Run ng generate component component-name
to generate a new component. You can also
use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a
package that implements end-to-end testing capabilities.
Commit messages follow the conventional commits guidelines. This allows for automating the semantic versioning release process using semantic release
To enforce that, commitlint
is used. It reads the commit messages on a PR and ensures they follow
the conventional commits convention.
You can use the following run script to ensure the last commit follows the guidelines:
yarn run commitlint-last
Semantic Release is used to automate the release process. Based on commit messages, a new major,
minor or patch release is generated for every push to main branch. For every release, a Git tag will be created, a
GitHub release will be created and a new version of the app will be published to npm
public registry. All of this
is managed automatically by Semantic Release and CI/CD pipelines.
Config has been tweaked so all commits appear in the release notes. To do so,
types
of commits included are all of those defined in Conventional Changelog type defaults. But none is hidden. That list comprehends
all commit types that commitlint
will lint.
In order to embed release information in the app, a script was created to export that kind of information using Semantic Release's JavaScript API.
To generate the release info, run
yarn run generate-release-file
It will generate a release.json
file in the root of the repository containing all info about releases that
Semantic Release provides.
⚠️ Next release can be fake
The API only outputs information when a new release has to be generated. As a workaround, a fake patch release is generated in case no release was needed to get access to all that info.
To distinguish a real run from a faked run, a
fake
property exists in that JSON with value set totrue
. The only faked properties are about next release (nextRelease
andreleases
at the moment of writing this). Info about last release remains correct even when faking the release to generate the output (lastRelease
at the moment of writing this)
⚠️ Next release can be a preview
If running the script from a branch that's not configured to trigger releases, the default API behaviour is to output no data. As a workaround, we simulate being on the
main
branch and see what would happen in that scenario when including commits from the current branch.To distinguish a real run from a faked run, a
preview
property exists in that JSON with value set totrue
. This is because it's a simulation of this branch being merged into main branch. But you could want to merge that against another (the script could be smarter and simulate that too, but not yet :P).
⚠️ Next release can be fake and preview If both of previous situations happen at same time (commits of branch are not enough to trigger a release and branch is not one configured for releases)
Not a fan of, but it's useful to enforce conventional commits. Indeed, it's only one, a pre-commit hook. And checks your commit message complies with the conventional commits format and configuration.
To use it, run
yarn run git-hooks
It will install Git hooks via husky
. Now everytime you commit, you'll be sure
commit message guidelines are enforced.
This is very useful if you can push to
main
directly. Because there's no way to reject commits that don't follow the commit message guidelines. And once you push tomain
, you cannot amend that commit as per branch protection rules.
Some metadata about the app (like title, author, theme color...) was repeated across files. So used
LiquidJS to create template files (.liquid
extension). Then, created a small script to render
templates into generated files using metadata defined in metadata.ts
file (and some hardcoded constants in the
generation script)
If you update some metadata in that file, run the script to update files generated from templates. Otherwise, they won't be in sync.
Automatically updating generated files is not straightforward. Doing something before/after an Angular app build runs is not an option right now. Adding a bunch of pre
npm
run scripts left thepackage.json
file quite cluttered. Also, won't work if issuingng
commands. So decided to leave the task to update generated files to the developer. At some point a CI check could be introduced to ensure generated files are up-to-date. Generated files are left in the repo because of that reason (and also so you can clone & run without issues). That metadata won't change often anyway.
When using Angular development server (either regular or SSR one), symbolic links seem not to work for static assets.
So for instance /profile.jpg
which is symlinked to /assets/img/og.jpg
won't be served. And the server will redirect
you towards main page (/
). It works when building though, so it will appear in the built version.
Some fonts included are a subset of a big font file. Before doing anything, please run
yarn run font-subsets
To generate them. Otherwise, those fonts won't be found and you may get some errors. Also, remember to run it if changing the glyphs included in each font. Or to add the new glyphs if you want to use more glyphs of a font.
GitHub Actions are used
In order to ease running CI/CD commands locally, the .ci
directory contains a Makefile
intended to contain all
commands that will be run in CI/CD pipelines. So you can test those locally easily
Just:
cd .ci && make test # for instance
And see how a command run in the CI/CD behaves locally. Notice your machine's state may differ from the CI/CD machine one.
You can use act
to run GitHub Action workflows in your development machine. If using
macOS, install it using brew
:
brew install act
Then, use one of the many run-
targets in the CI/CD Makefile
to simulate a CI/CD workflow run. For instance:
cd .ci && make run-main
Simulates the workflow triggered by a push to main
branch.
If you get a message related to Apple M-series chip:
WARN ⚠ You are using Apple M-series chip and you have not specified container architecture, you might encounter issues while running act. If so, try running it with '--container-architecture linux/amd64'. ⚠ 7s
You can add
--container-architecture linux/amd64
(notice a space when line begins) to your~/.actrc
file. Create it if it doesn't exist.
ℹ️ Images are set to
js-*
ones via the.actrc
file as medium default ones don't includeyarn
:sadparrot:
To get more help on the Angular CLI use ng help
or go check out
the Angular CLI Overview and Command Reference page.
FAQs
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
The npm package @davidlj95/website-v2 receives a total of 0 weekly downloads. As such, @davidlj95/website-v2 popularity was classified as not popular.
We found that @davidlj95/website-v2 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.