本项目在next-shopping
开发进入正轨的时候开始,正好,两边同步进行,next-shopping
有了api接口,这边就可以直接使用,本项目基于expojs
进行开发,且全程使用ts
,redux
新建项目:
shell
npx create-expo-app -t expo-template-blank-typescript --no-install
使用ts模板新建项目,并且不让他自动安装依赖,注意expo-template-blank-typescript
是模板,而不是你的项目名称,这段命令运行过后会让你填写项目名称
代码格式化 & 提交规范
安装格式化依赖:
shell
pnpm i eslint-config-universe eslint@8 prettier -D
新建.eslintrc.js
js
module.exports = {
extends: ["universe", "universe/shared/typescript-analysis"],
overrides: [
{
files: ["*.ts", "*.tsx", "*.d.ts"],
parserOptions: {
project: "./tsconfig.json",
},
},
],
};
新建.prettierrc
js
{
"printWidth": 100,
"tabWidth": 2,
"singleQuote": false,
"bracketSameLine": true,
"semi": true
}
在package.json
中添加脚本
提交规范
安装依赖:
shell
pnpm i husky -D
初始化husky
shell
npx husky install
添加lint
到pre-commit
shell
echo "pnpm lint" > .husky/pre-commit
安装commit
检测依赖
shell
pnpm i commitlint @commitlint/cli @commitlint/config-conventional -D
新建.commitlintrc.js
js
module.exports = {
extends: ["@commitlint/config-conventional"]
};
写入提交msg
shell
echo "npx --no-install commitlint -e $HUSKY_GIT_PARAMS" > .husky/commit-msg
使用新的路由
地址:docs.expo.dev/router/inst...
安装依赖:
shell
npx expo install expo-router react-native-safe-area-context react-native-screens expo-linking expo-constants expo-status-bar
修改package.json
里面的main
地址:
json
{
"main": "expo-router/entry"
}
安装web
的支持依赖:
shell
npx expo install react-native-web react-dom
修改app.json
重的web打包配置
json
{
"web": {
"bundler": "metro"
}
}
安装依赖:
shell
npx expo install @babel/runtime
新建app/index.tsx
tsx
import { Text } from "react-native";
export default function Page() {
return <Text>Home page</Text>;
}
运行项目,效果如下: