前端工程中的文件

一、Dockerfile

在前端工程中,Dockerfile 用于定义构建 Docker 镜像的过程,从而将前端应用及其运行环境打包成一个可移植的容器

例子:

bash 复制代码
# 使用官方 Node.js 镜像作为基础镜像
FROM node:16-alpine AS builder

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json 文件
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制前端源代码
COPY . .

# 构建前端项目
RUN npm run build

# 使用 Nginx 镜像作为最终运行环境
FROM nginx:alpine

# 复制构建好的静态文件到 Nginx 的默认目录
COPY --from=builder /app/dist /usr/share/nginx/html

# 暴露 80 端口
EXPOSE 80

# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]

二、jsconfig.json

jsconfig.json 是一个配置文件,用于为 JavaScript 项目提供额外的配置选项

  1. 路径别名配置

通过 jsconfig.json,可以定义路径别名,简化模块导入路径。例如:

perl 复制代码
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"],
      "@components/*": ["src/components/*"]
    }
  }
}

这样,在代码中可以使用别名导入模块:

css 复制代码
import Header from '@components/Header';
  1. 模块解析配置

可以配置模块解析方式,指定如何查找模块。例如:

json 复制代码
{
  "compilerOptions": {
    "moduleResolution": "node"
  }
}
  1. 类型检查

虽然 jsconfig.json 主要用于 JavaScript 项目,但它也可以启用类型检查功能,帮助捕获潜在的类型错误。例如:

json 复制代码
{
  "compilerOptions": {
    "checkJs": true,
    "jsx": "react"
  }
}
  1. 编辑器增强

jsconfig.json 可以提升开发体验,例如:

  • 自动补全:编辑器可以根据配置提供更智能的代码补全。
  • 导航功能:支持在项目中快速跳转到定义的模块或变量。
  • 错误检查:实时显示代码中的潜在问题。

三、plopfile.js

plopfile.js 是 Plop 工具的配置文件,用于定义代码生成器任务。它的主要作用是通过自动化的方式简化重复性代码的创建过程,提高开发效率。以下是 plopfile.js 的具体作用:

  1. 作为 Plop 的入口文件

plopfile.js 是 Plop 工具在项目中的入口文件,它需要导出一个函数,该函数接收一个 Plop 对象作为参数,用于创建生成器任务。

ini 复制代码
module.exports = plop => {
  // 在这里定义生成器任务
};
  1. 定义生成器任务

通过 plop.setGenerator() 方法,可以在 plopfile.js 中定义多个生成器任务,每个任务用于生成特定类型的文件或代码结构。

(1) 描述生成器任务

每个生成器任务都有一个描述,用于在命令行中显示任务的用途。

vbnet 复制代码
description: '创建一个组件',

(2) 定义用户交互问题

通过 prompts 属性,可以定义一系列问题,用于在命令行中与用户交互,获取生成文件所需的信息。

css 复制代码
prompts: [
  {
    type: 'input',
    name: 'name',
    message: '组件名称',
    default: 'MyComponent'
  }
],

(3) 定义生成操作

通过 actions 属性,可以定义在获取用户输入后执行的操作,例如创建文件、修改现有文件等。

yaml 复制代码
actions: [
  {
    type: 'add',
    path: 'src/components/{{name}}/{{name}}.js',
    templateFile: 'plop-templates/component.hbs'
  }
],
  1. 使用模板文件

plopfile.js 中的生成器任务可以引用模板文件,这些模板文件通常存放在项目中的 plop-templates 目录下。

vbnet 复制代码
templateFile: 'plop-templates/component.hbs'

模板文件使用 Handlebars 语法,可以动态插入用户输入的值。

  1. 提高开发效率

plopfile.js 的主要目的是通过自动化的方式减少手动创建重复性代码的工作量,让开发者能够更专注于业务逻辑的实现。

四、babelrc.js

.babelrc.js 是一个 Babel 配置文件,用于定义项目中 JavaScript 代码的转译规则。Babel 是一个 JavaScript 编译器,主要用于将 ES6+ 语法转换为向后兼容的 ES5 语法,以便在各种浏览器中正确运行

css 复制代码
module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        targets: {
          browsers: ['last 2 versions', 'Firefox ESR', 'not dead']
        },
        useBuiltIns: 'usage',
        corejs: 3
      }
    ],
    '@babel/preset-react'
  ],
  plugins: [
    '@babel/plugin-proposal-class-properties',
    '@babel/plugin-proposal-object-rest-spread',
    '@babel/plugin-transform-runtime',
    'react-hot-loader/babel'
  ]
};

五、browserslistrc

定义了项目所支持的浏览器及其版本范围。这一配置被广泛应用于多种前端工具和库中,例如 Babel、Autoprefixer、Webpack 等,以确保生成的代码能够兼容指定的浏览器。

java 复制代码
module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore']],
    'type-case': [0],
    'type-empty': [0],
    'scope-empty': [0],
    'scope-case': [0],
    'subject-full-stop': [0, 'never'],
    'subject-case': [0, 'never'],
    'header-max-length': [0, 'always', 72]
  }
};

六、eslintrc.cjs

.eslintrc.cjs 是一个 ESLint 配置文件,用于定义项目的代码质量和风格规则。ESLint 是一个可配置的 JavaScript 检查器,能够帮助发现代码中的问题并保持代码风格的一致性。

java 复制代码
module.exports = {
  // 指定解析器
  parser: '@babel/eslint-parser',
  // 指定环境
  env: {
    browser: true,
    es6: true
  },
  // 继承推荐规则和插件规则
  extends: [
    'eslint:recommended',
    'plugin:react/recommended'
  ],
  // 配置插件
  plugins: [
    'react'
  ],
  // 自定义规则
  rules: {
    'react/jsx-uses-react': 'error',
    'react/jsx-uses-vars': 'error',
    'no-unused-vars': 'warn',
    'no-console': 'off'
  }
};
  • .browserslistrc 的关系.browserslistrc 定义了项目支持的浏览器范围,而 .eslintrc.cjs 则关注代码质量和风格,两者共同确保代码在目标浏览器中正常运行且符合规范。
  • .commitlintrc 的关系.commitlintrc 用于规范 Git 提交信息的格式,而 .eslintrc.cjs 关注代码本身的规范,两者都是项目规范的一部分,但作用于不同的层面。

七、gitattributes

件用于定义一系列与 Git 版本控制系统相关的属性,这些属性可以针对特定的文件或目录进行设置,以优化代码的存储、传输和协作流程。

ini 复制代码
# 指定所有文件使用 LF 换行符
* text=auto eol=lf

# 指定特定文件使用 CRLF 换行符
*.bat text eol=crlf
*.cmd text eol=crlf

# 指定二进制文件不进行换行符转换
*.png binary
*.jpg binary
*.gif binary

# 指定特定文件的编码格式
*.js charset=UTF-8
*.css charset=UTF-8

# 指定特定文件的缩进风格
*.js indent=4
*.css indent=2

# 指定某些文件在合并时使用特定策略
CHANGELOG.md merge=union
  • .gitignore 的关系.gitignore 用于指定哪些文件或目录不应被 Git 跟踪,而 .gitattributes 则是针对被跟踪的文件定义其属性和处理方式。
  • .eslintrc.cjs 的关系.eslintrc.cjs 主要关注代码质量和风格,而 .gitattributes 则从版本控制的角度确保文件的一致性和正确性。

八、Markdownlint

通常用于配置 Markdownlint 工具的规则和选项。Markdownlint 是一个用于检查 Markdown 文件是否符合特定风格和格式规则的工具。通过 .markdownlint 文件,可以定义哪些规则是启用的,哪些是禁用的,以及特定规则的配置选项。

九、 npmrc

npm(Node Package Manager)的运行时配置文件,用于定义 npm 包管理器的行为。通过这个文件,可以配置 npm 的各种选项,比如包的下载源、代理设置、认证信息等

十、prettierrc

用于定义代码格式化的规则。Prettier 是一个代码格式化工具,能够自动化地将代码转换为一致的风格,确保代码风格的一致性,减少因代码格式不同而引发的合并冲突

十一、stylelintrc

.stylelintrc.js 是一个 Stylelint 配置文件,用于定义项目的 CSS 代码风格和质量规则。Stylelint 是一个可配置的 CSS 检查器,能够帮助发现 CSS 代码中的问题并保持代码风格的一致性

相关推荐
小小小小宇9 分钟前
前端 WebRTC 全解析与应用
前端
华玥12 分钟前
优化滚动列表,使用虚拟滚动
前端
小小小小宇12 分钟前
前端 WebAssembly 全解析与应用
前端
huangdong_20 分钟前
京东商品图片视频批量下载与m3u8视频合并技术完整实现方案
大数据·前端·数据库
尽兴-24 分钟前
4.1 智能体核心:Agent、Sub-Agent、ReAct、规划执行
前端·javascript·react.js·agent·react·subagent
小小小小宇37 分钟前
前端 Shadow DOM 全解析与应用
前端
万物更新_39 分钟前
vue框架
前端·javascript·vue.js·笔记
小小小小宇42 分钟前
前端 Web Workers 和 Service Workers 全解析与应用
前端
陆枫Larry1 小时前
浏览器的 Reflow 和 Repaint 是什么?为什么要尽量避免它们?
前端
孜孜不倦不忘初心1 小时前
mac安装nvm及问题记录
前端·node.js