- Notifications
You must be signed in to change notification settings - Fork389
SolidStart, the Solid app framework
License
solidjs/solid-start
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is the home of the SolidStart, the Solid app framework.
- File-system based routing
- Supports all rendering modes:
- Server-side rendering (SSR)
- Streaming SSR
- Client-side rendering (CSR)
- Static site generation (SSG)
- Streaming
- Build optimizations with code splitting, tree shaking and dead code elimination
- API Routes
- Built on Web standards like Fetch, Streams, and WebCrypto
- Adapters for deployment to all popular platforms
- CSS Modules, SASS/SCSS Support
- TypeScript-first
Create a SolidStart application and run a development server using your preferred package manager:
mkdir my-appcd my-app# with npmnpm init solid@latestnpm installnpm run dev# or with pnpmpnpm create solid@latestpnpm installpnpm dev# or with Bunbun create solid@latestbun installbun dev
You should use a Node.js version managercompatible with.node-version
(asdf-vm is a great option macOS/Linux users)
The monorepo usespnpm
as the package manager. To installpnpm
, run the following command in your terminal.
npm install -g pnpm
Runpnpm install
to install all the dependencies for the packages and examples in your monorepo.
Runpnpm build
to build SolidStart project
If you are using SolidStart within a monorepo that takes advantage of thepackage.json
"workspaces"
property (e.g.Yarn workspaces) with hoisted dependencies (the default for Yarn), you must include#solidjs/start
within the optional"nohoist"
(for Yarn v2 or higher, see further down for instructions) workspaces property.
- In the following, "workspace root" refers to the root of your repository while "project root" refers to the root of a child package within your repository.
For example, if specifying"nohoist"
options from the workspace root (i.e. for all packages):
// in workspace root{"workspaces": {"packages": [/* ...*/ ],"nohoist": ["**/@solidjs/start"] }}
If specifying"nohoist"
options for a specific package using@solidjs/start
:
// in project root of a workspace child{"workspaces": {"nohoist": ["@solidjs/start"] }}
Regardless of where you specify thenohoist
option, you also need to include@solidjs/start
as adevDependency
in the childpackage.json
.
The reason why this is necessary is because@solidjs/start
creates anindex.html
file within your project which expects to load a script located in/node_modules/@solidjs/start/runtime/entry.jsx
(where/
is the path of your project root). By default, if you hoist the@solidjs/start
dependency into the workspace root then that script will not be available within the package'snode_modules
folder.
Yarn v2 or higher
Thenohoist
option is no longer available in Yarn v2+. In this case, we can use theinstallConfig
property in thepackage.json
(either workspace package or a specific project package) to make sure our deps are not hoisted.
// in project root of a workspace child{"installConfig": {"hoistingLimits":"dependencies" }}
About
SolidStart, the Solid app framework