问题背景
在本地开发环境(windows/macos)一切正常,但部署到 linux 服务器后出现模块加载错误,核心原因是:
linux 文件系统严格区分大小写
本地开发时 import component from './mycomponent' 能加载 mycomponent.js
但部署后要求文件名必须完全匹配大小写:mycomponent.js
解决方案
1. eslint 代码层检测
在编写阶段捕获错误:
// .eslintrc.js module.exports = { settings: { "import/resolver": { // 指向 webpack 配置文件 让 eslint 理解 webpack 的模块解析规则 webpack: { config: "./webpack.base.js" } } }, rules: { "import/no-unresolved": ["error", { casesensitive: true // 关键配置 }] } }
2. webpack 构建层检测
在编译阶段阻断错误:
// 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() |
到此这篇关于linux部署中的文件大小写问题的解决方案的文章就介绍到这了,更多相关linux部署文件大小写问题内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论