Files
FastGPT/dev.md
gggaaallleee 9fb5d05865 add audit (#4923)
* add audit

* update audit

* update audit
2025-06-03 21:28:26 +08:00

3.1 KiB
Raw Blame History

Premise

Since FastGPT is managed in the same way as monorepo, it is recommended to install make first during development.

monorepo Project Name:

  • app: main project -......

Dev

# Give automatic script code execution permission (on non-Linux systems, you can manually execute the postinstall.sh file content)
chmod -R +x ./scripts/
# Executing under the code root directory installs all dependencies within the root package, projects, and packages
pnpm i

# Not make cmd
cd projects/app
pnpm dev

# Make cmd
make dev name=app

Note: If the Node version is >= 20, you need to pass the --no-node-snapshot parameter to Node when running pnpm i

NODE_OPTIONS=--no-node-snapshot pnpm i

Jest

https://fael3z0zfze.feishu.cn/docx/ZOI1dABpxoGhS7xzhkXcKPxZnDL

I18N

Install i18n-ally Plugin

  1. Open the Extensions Marketplace in VSCode, search for and install the i18n Ally plugin.

Code Optimization Examples

Fetch Specific Namespace Translations in getServerSideProps

// pages/yourPage.tsx
export async function getServerSideProps(context: any) {
  return {
    props: {
      currentTab: context?.query?.currentTab || TabEnum.info,
      ...(await serverSideTranslations(context.locale, ['publish', 'user']))
    }
  };
}

Use useTranslation Hook in Page

// pages/yourPage.tsx
import { useTranslation } from 'next-i18next';

const YourComponent = () => {
  const { t } = useTranslation();

  return (
    <Button
      variant="outline"
      size="sm"
      mr={2}
      onClick={() => setShowSelected(false)}
    >
      {t('common:close')}
    </Button>
  );
};

export default YourComponent;

Handle Static File Translations

// utils/i18n.ts
import { i18nT } from '@fastgpt/web/i18n/utils';

const staticContent = {
  id: 'simpleChat',
  avatar: 'core/workflow/template/aiChat',
  name: i18nT('app:template.simple_robot'),
};

export default staticContent;

Standardize Translation Format

  • Use the t(namespace:key) format to ensure consistent naming.
  • Translation keys should use lowercase letters and underscores, e.g., common.close.

audit

Please fill the OperationLogEventEnum and operationLog/audit function is added to the ts, and on the corresponding position to fill i18n, at the same time to add the location of the log using addOpearationLog function add function

Build

# Docker cmd: Build image, not proxy
docker build -f ./projects/app/Dockerfile -t registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.1 . --build-arg name=app
# Make cmd: Build image, not proxy
make build name=app image=registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.1

# Docker cmd: Build image with proxy
docker build -f ./projects/app/Dockerfile -t registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.1 . --build-arg name=app --build-arg proxy=taobao
# Make cmd: Build image with proxy
make build name=app image=registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.1 proxy=taobao