返回
React+Express+TS+Docker:零到一的全栈项目
前端
2023-10-12 15:50:23
好的,请看这篇博文:
1. 项目初始化
首先,使用 create-react-app 创建一个 React 项目:
npx create-react-app my-app
然后,安装 Express 和 TypeScript:
npm install express typescript --save
接下来,创建一个 tsconfig.json 文件,并添加如下内容:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"jsx": "react",
"noImplicitAny": true,
"strictNullChecks": true
}
}
最后,将项目中的所有 .js 文件重命名为 .tsx 文件。
2. 本地开发
在项目根目录下,创建一个 server.ts 文件,并添加如下内容:
import express from 'express';
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server is listening on port 3000');
});
在项目根目录下,创建一个 package.json 文件,并添加如下内容:
{
"scripts": {
"start": "concurrently \"npm run start:client\" \"npm run start:server\"",
"start:client": "react-scripts start",
"start:server": "ts-node server.ts"
}
}
然后,运行以下命令启动项目:
npm run start
现在,你就可以在浏览器中访问 http://localhost:3000 来查看项目了。
3. 测试
在项目根目录下,创建一个 test 文件夹,并在其中创建一个 App.test.tsx 文件,并添加如下内容:
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});
然后,运行以下命令来运行测试:
npm test
4. Docker 部署
在项目根目录下,创建一个 Dockerfile 文件,并添加如下内容:
FROM node:16
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
CMD npm run start
然后,运行以下命令来构建 Docker 镜像:
docker build -t my-app .
最后,运行以下命令来运行 Docker 容器:
docker run -p 3000:3000 my-app
现在,你就可以在浏览器中访问 http://localhost:3000 来查看项目了。