You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从GitHub部署网站至Netlify遇#字符文件名报错,求助解决

解决Netlify部署时文件名含#的错误

我来帮你搞定这个头疼的部署问题!Netlify明确禁止部署的文件名/路径里包含#或?字符,而你遇到的node_modules/es5-ext/date/#/format.js就是典型的违规路径。你已经尝试过删除并升级es5-ext但没效果,大概率是因为你的项目依赖树里有其他包间接引用了旧版本的es5-ext,导致这个有问题的文件依然存在。

给你几个靠谱的解决方案,按顺序试试:

  • 强制统一es5-ext的版本
    这个是最有效的方法。在你的package.json里添加resolutions字段,强制所有依赖都使用修复了路径问题的es5-ext版本(v0.10.53及以后的版本已经移除了带#的路径):

    "resolutions": {
      "es5-ext": "^0.10.53"
    }
    
    • 如果用Yarn:直接运行yarn install就会生效;
    • 如果用npm:需要先安装npm-force-resolutions工具,然后修改package.json的scripts:
      "scripts": {
        "preinstall": "npx npm-force-resolutions"
      }
      
      之后再运行npm install。
  • 彻底清理依赖缓存
    有时候旧的依赖缓存会导致问题残留,执行以下步骤:

    1. 删除node_modules文件夹
    2. 删除package-lock.json(npm)或yarn.lock(yarn)
    3. 重新运行npm install/yarn install
    4. 提交更新后的锁文件到GitHub,触发Netlify重新部署
  • 检查依赖树,定位深层依赖
    运行npm ls es5-ext(npm)或yarn list es5-ext(yarn),查看所有引用es5-ext的包,确认是不是某个第三方包还在依赖旧版本。如果发现了,除了用resolutions强制替换,也可以考虑给那个包提issue或者等待它更新依赖。

  • 应急方案:临时移除违规文件
    如果上面的方法都来不及试,可以在Netlify的构建命令里加一步删除违规文件的操作(不推荐长期用,可能影响包功能):

    rm -rf "node_modules/es5-ext/date/#" && 你的原有构建命令
    

    比如你的构建命令是npm run build,就改成rm -rf "node_modules/es5-ext/date/#" && npm run build,在Netlify的项目设置里更新构建命令即可。

内容的提问来源于stack exchange,提问作者Magofoco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:27:00