Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Netlify deploy with --no-build flag is still building edge functions

未关闭
#7,933 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
typescript
领域
build-system, cli

调研方向

从 netlify deploy --no-build 路径和 Edge Functions 打包步骤开始;使用 netlify build 复现,删除 Edge Function package 的 dist 文件夹,然后执行 deploy。完成意味着 deploy 会重新使用已经构建好的 Edge Function 构件,而不会重新运行 bundler,也不要求 source 和 workspace dist 文件。

由索引模型根据 Issue 内容生成。

描述

type: bug
Describe the bug
Expected behavior

According to the Netlify CLI documentation for netlify deploy:

--no-build Do not run build command before deploying. Only use this if you have no need for a build or your project has already been built.

When running:

  • netlify build
    successfully bundles Edge Functions and places artifacts (.netlify/edge-functions/ or similar)
  • netlify deploy --no-build
    should only upload already-built assets + already-bundled Edge Functions without re-running any bundling
Observed behavior

Even with --no-build, the CLI still runs the Edge Functions bundler:

⠋ Bundling edge functions...
✘ [ERROR] Could not resolve "[REDACTED]"
    [REDACTED]:
      1 │ import * as mod from "[REDACTED]";
        ╵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  The module "./dist/index.js" was not found on the file system:
    [REDACTED]:
      11 │ "default": "./dist/index.js"
         ╵ ~~~~~~~~~~~~~~~~~

You can mark the path "[REDACTED]" as external to exclude it from the bundle, which will remove this error and leave the unresolved path in the bundle.

This fails because:

  • The bundler is looking for source files and/or workspace-internal dist/ artifacts that were produced during the earlier netlify build / monorepo build step.
  • Those files are not present (or not visible) in the clean GitLab CI job for the deploy stage.
  • This forces us to either:
    • Artifact-upload all internal dist/ folders from every workspace/package used by Edge Functions
      This is very messy & results in large artifacts
    • Or give up on separating build & deploy and run full build again in the deploy job (loses the separation benefit)
Why this matters (business / DX impact)
  • In monorepos with many packages, bundling internal dist/ folders into artifacts just to satisfy the Edge Functions bundler is inefficient and error-prone.
  • It defeats one of the main advertised benefits of --no-build: clean separation of build & deploy for faster / more predictable CI, especially on large repos.
  • Regular (non-edge) Functions appear to respect --no-build much better (pre-zipped bundles are reused).
Steps to reproduce
  1. Create a new monorepo where you add a separate Edge Function in a package
  2. Include the Edge Function within the application
  3. Run netlify build
  4. Remove the dist folder of the Edge Function package
  5. Run netlify deploy
  6. See that it can't find the necessary files to create the Edge Function bundle
Configuration
[build]
  publish = "dist"           # or wherever your publish dir is
  command = "turbo run build"  # or similar monorepo build command

[[edge_functions]]
  path = "/*"
  function = "my-function"
Environment
  System:
    OS: macOS 15.7.3
    CPU: (12) arm64 Apple M4 Pro
    Memory: 196.92 MB / 24.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 22.22.0 - /Users/pvanmeijgaard/.local/state/fnm_multishells/11669_1770277129243/bin/node
    npm: 10.9.4 - /Users/pvanmeijgaard/.local/state/fnm_multishells/11669_1770277129243/bin/npm
    pnpm: 10.28.1 - /Users/pvanmeijgaard/.local/state/fnm_multishells/11669_1770277129243/bin/pnpm
    bun: 1.3.7 - /opt/homebrew/bin/bun
主要语言
TypeScript
星标
1.9k
派生
480
平均合并
1 天 15 小时
30 天内合并 PR
66

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

netlify/cli 的其他 Issue

查看 netlify/cli 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。