内容简介:This is a great template for a any project where you want
Next.js serverless PWA with Firebase
Note: this is my v4 boilerplate for React web apps. See also nextjs-pwa-graphql-sql-boilerplate , nextjs-sql-rest-api-boilerplate and nextjs-express-mongoose-crudify-boilerplate .
Why is this awesome?
This is a great template for a any project where you want React (with Hooks) (with server-side rendering, powered by Next.js ) as frontend and Firebase as backend. Lightning fast, all JavaScript.
- Great starting point for a PWA (Progressive Web App) .
- Can be deployed asserverless functions on Vercel/Zeit Now.
- The new Firebase database, Cloud Firestore , as database.
- React Hooks for business logic.
- Free-form database model. No GraphQL or REST API, just add React Hooks and modify
[page].getServerSideProps(for server-side rendering, SSR) when changing/adding database tables. - PWA features such as
manifest.jsonand offline support (next-offline, not yet included). - Easy to style the visual theme using CSS (e.g. using Design Profile Generator ).
-
sitemap.xmlandrobots.txtsupport. - Google Analytics and
google-site-verificationsupport (seeconfig/config.js). - Flexible configuration with
config/config.jsand.env.localfile. - Code linting and formatting with StandardJS (
yarn lint/yarn fix). - Unit testing with Jasmine (
yarn unit, not yet included). - Great page speed, see Lighthouse score:
Demo
See nextjs-pwa-firebase-boilerplate running on Vercel/Zeit Now here .
How to use
Clone this repository:
git clone https://github.com/tomsoderlund/nextjs-pwa-firebase-boilerplate.git [MY_APP]
Remove the .git folder since you want to create a new repository
rm -rf .git
Install dependencies:
cd [MY_APP] yarn # or npm install
Set up the database:
Configure the .env.local file.
Start it by doing the following:
yarn dev # or 'yarn vercel' to run with Vercel/Zeit Now serverless
In production:
yarn build yarn start
If you navigate to http://localhost:3004/ you will see a web page with a list of articles (or an empty list if you haven’t added one).
Deploying serverless (on Vercel/Zeit Now)
Configure database:
vercel env add NEXT_PUBLIC_FIREBASE_API_KEY
Run in development mode with:
yarn vercel
Deploy to Now with:
yarn deploy
Modifying the app to your needs
Change app name
Do search/replace for “nextjs-pwa-firebase-boilerplate” to something else.
Change name in public/manifest.json
Renaming “Article” to something else
The database item is called “Article”, but you probably want something else in your app.
Rename the files:
mv hooks/articles.js hooks/{newName}.js
mkdir -p components/{newName}s
mv components/articles/ArticleList.js components/{newName}s/{NewName}List.js
mv components/articles/ArticleListItem.js components/{newName}s/{NewName}ListItem.js
mv components/articles/ArticleDetails.js components/{newName}s/{NewName}Details.js
rm -r components/articles
mkdir pages/{newName}s
mv "pages/articles/[article].js" "pages/{newName}s/[{newName}].js"
rm -r pages/articles
Then, do search/replace inside the files for different casing: article , Article , ARTICLE .
Change port number
Do search/replace for “3004” to something else.
How to remove/replace database
Delete lib/firebase.js and modify hooks/articles.js .
Change visual theme (CSS)
public/manifest.json public/app.css PageHead.js
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
HSV CMYK 转换工具
HSV CMYK互换工具