Label Studio Frontend 项目教程
1. 项目的目录结构及介绍
Label Studio Frontend 是一个使用 React 和 mobx-state-tree 开发的前端库,可以嵌入到你的应用程序中,提供数据标注支持。以下是项目的目录结构及主要文件的介绍:
label-studio-frontend/
├── src/
│ ├── assets/
│ ├── components/
│ ├── env/
│ ├── models/
│ ├── stores/
│ ├── styles/
│ ├── utils/
│ ├── index.js
│ └── App.js
├── public/
│ ├── index.html
│ └── manifest.json
├── package.json
├── README.md
└── webpack.config.js
src/
:包含项目的源代码,包括组件、模型、存储、样式和工具函数等。assets/
:存放静态资源,如图片、字体等。components/
:包含 React 组件。env/
:环境配置文件。models/
:数据模型。stores/
:状态管理。styles/
:样式文件。utils/
:工具函数。index.js
:入口文件。App.js
:主应用组件。
public/
:公共文件,包括 HTML 模板和 manifest 文件。index.html
:HTML 模板。manifest.json
:PWA 配置文件。
package.json
:项目依赖和脚本配置。README.md
:项目说明文档。webpack.config.js
:Webpack 配置文件。
2. 项目的启动文件介绍
项目的启动文件是 src/index.js
,它是整个应用的入口点。以下是 index.js
的主要内容:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './styles/main.css';
ReactDOM.render(<App />, document.getElementById('root'));
- 导入 React 和 ReactDOM 库。
- 导入主应用组件
App
。 - 导入全局样式文件
main.css
。 - 使用
ReactDOM.render
方法将App
组件挂载到 DOM 节点root
上。
3. 项目的配置文件介绍
项目的配置文件主要包括 package.json
和 webpack.config.js
。
package.json
package.json
文件包含了项目的依赖、脚本和其他元数据。以下是一些关键部分:
{
"name": "label-studio-frontend",
"version": "1.0.0",
"scripts": {
"start": "webpack-dev-server --config webpack.config.js --mode development --open",
"build": "webpack --config webpack.config.js --mode production"
},
"dependencies": {
"react": "^17.0.2",
"react-dom": "^17.0.2",
"mobx-state-tree": "^5.0.0"
},
"devDependencies": {
"webpack": "^5.0.0",
"webpack-dev-server": "^4.0.0"
}
}
scripts
:定义了启动开发服务器和构建生产版本的命令。dependencies
:项目运行时的依赖。devDependencies
:开发时的依赖。
webpack.config.js
webpack.config.js
文件定义了 Webpack 的配置,包括入口文件、输出路径、模块解析规则等。以下是一些关键部分:
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.css$/,
use: ['style-