解决 Linux 部署中的文件大小写问题

问题背景

在本地开发环境(Windows/macOS)一切正常,但部署到 Linux 服务器后出现模块加载错误,核心原因是:

Linux 文件系统严格区分大小写

本地开发时 import Component from './MyComponent' 能加载 mycomponent.js

但部署后要求文件名必须完全匹配大小写:MyComponent.js

解决方案

1. ESLint 代码层检测

在编写阶段捕获错误:

javascript 复制代码
// .eslintrc.js
module.exports = {
  settings: {
    "import/resolver": {
      // 指向 Webpack 配置文件 让 ESLint 理解 Webpack 的模块解析规则
      webpack: { config: "./webpack.base.js" } 
    }
  },
  rules: {
    "import/no-unresolved": ["error", { 
      caseSensitive: true // 关键配置
    }]
  }
}

2. Webpack 构建层检测

在编译阶段阻断错误:

javascript 复制代码
// webpack.base.js
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');

module.exports = {
  plugins: [
    new CaseSensitivePathsPlugin() // 构建时大小写校验
  ]
};

配置要求

工具 安装依赖 核心配置
ESLint eslint-plugin-import eslint-import-resolver-webpack caseSensitive: true
Webpack case-sensitive-paths-webpack-plugin new CaseSensitivePathsPlugin()
相关推荐
Lank_M1 分钟前
PNG 有损压缩省下的体积,大头不在 deflate
前端
用户老李23 分钟前
相机模型与标定自学教程 02:外参 \[R | t] 与完整投影链路
前端
用户老李36 分钟前
无线电自学教程 03:电路基础——从欧姆定律到 LC 谐振
前端
申君健248641827720238 分钟前
ESM 源码发布 + 显式子路径导出
前端
大龄秃头程序员40 分钟前
实践 iOS Touch 响应链:从 sendEvent 到 nextResponder 的完整闭环
前端
用户老李1 小时前
YOLO 目标检测自学教程 05:动手——从零实现 mini-YOLOv1
前端
用户老李1 小时前
视频编码自学教程 02:颜色与色彩空间——从 RGB 到 Y'CbCr 4:2:0
前端
用户老李1 小时前
无线电自学教程 02:数学工具箱——正弦、复数、相量与分贝
前端
lpp191 小时前
一个网页的完整一生:从敲网址到页面显示,中间发生了什么
前端
春涧草茶2 小时前
慢就是快16-1协程
开发语言·前端·python