确认GitHub Actions文件名大小写敏感性及Webpack构建报错问题
问题解析:Webpack在GitHub Action中找不到文件的原因
根本原因:跨系统文件名大小写敏感性差异
你使用的GitHub Actions运行在ubuntu-latest(Linux系统)上,而Linux对文件名大小写严格敏感;如果本地开发用的是macOS(默认APFS不区分大小写)或Windows(NTFS默认不区分大小写),就会出现本地能正常加载文件,但CI环境找不到的矛盾。
你的场景里,应该是代码中引入文件时写的是fetchingDataAsSecond.js(驼峰拆分正确,AsSecond),但实际文件名是fetchingDataAsecond.js(Asecond,第二个字母小写):
- 本地系统不区分大小写,所以能“模糊匹配”到文件
- Linux的CI环境不认这种模糊匹配,直接判定文件不存在,Webpack找不到文件时就会抛出
Field 'browser' doesn't contain a valid alias configuration这类通用报错(核心还是文件路径不匹配)
重命名解决问题的逻辑
把文件名改成fetchingDataAsSecond.js后,文件名和代码中的引入路径大小写完全一致,Linux系统就能正确定位到文件,Webpack的模块解析自然恢复正常。
避免这类问题的实用建议
- 严格保持代码中文件引入路径和实际文件名的大小写完全一致,遵循驼峰命名规范(比如
fetchingDataAsSecond.js这种清晰的单词拆分) - 本地开发如果用macOS,可将磁盘格式改为区分大小写的APFS,提前模拟CI环境的行为,避免跨环境踩坑
- 给Webpack添加
case-sensitive-paths-webpack-plugin插件,强制检查模块路径的大小写一致性,在本地开发阶段就揪出这类问题
你的GitHub Actions配置(参考)
# .github/workflows/webpack.yml name: NodeJS with Webpack on: push: branches: [ "prod" ] jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [16.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Build run: | npm install npx webpack --config webpack.prod.js
内容的提问来源于stack exchange,提问作者Zim
相关产品推荐
相关产品推荐

