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

部署AWS CDK栈时出现ENOENT错误,但文件实际存在

AWS CDK部署失败:软链接指向文件不存在问题

我能成功构建CDK栈,但部署时抛出ENOENT错误,提示找不到adler32文件。栈名已改为my-project,部署输出如下:

my-project:  start: Building bbc607a4ac6f868ba9e45e9f9ba5f1c3cf4e3b14d0e690f4c9ce3bb9cb9f964b:910458460161-eu-central-1
my-project:  success: Built bbc607a4ac6f868ba9e45e9f9ba5f1c3cf4e3b14d0e690f4c9ce3bb9cb9f964b:910458460161-eu-central-1
my-project:  start: Building 87982448b5f41e7ee4a7bb49f3bc091290bac6433b3a7155eb9c6b02619deec4:910458460161-eu-central-1
my-project:  success: Built 87982448b5f41e7ee4a7bb49f3bc091290bac6433b3a7155eb9c6b02619deec4:910458460161-eu-central-1
my-project:  start: Publishing bbc607a4ac6f868ba9e45e9f9ba5f1c3cf4e3b14d0e690f4c9ce3bb9cb9f964b:910458460161-eu-central-1
my-project:  start: Building 3c4cd26fe8b60b35c17579621245911d275a5676f6ae704257c6652d2f825998:910458460161-eu-central-1
my-project:  success: Built 3c4cd26fe8b60b35c17579621245911d275a5676f6ae704257c6652d2f825998:910458460161-eu-central-1
my-project:  start: Publishing 87982448b5f41e7ee4a7bb49f3bc091290bac6433b3a7155eb9c6b02619deec4:910458460161-eu-central-1
my-project:  start: Building 6ec7496703495c2ec88efaf08a099bd34ff79241da190bade4794a89b3364c23:910458460161-eu-central-1
my-project:  success: Built 6ec7496703495c2ec88efaf08a099bd34ff79241da190bade4794a89b3364c23:910458460161-eu-central-1
my-project:  start: Publishing 3c4cd26fe8b60b35c17579621245911d275a5676f6ae704257c6652d2f825998:910458460161-eu-central-1
my-project:  start: Publishing 6ec7496703495c2ec88efaf08a099bd34ff79241da190bade4794a89b3364c23:910458460161-eu-central-1
node:internal/process/promises:288
triggerUncaughtException(err, true /* fromPromise */);
^

[Error: ENOENT: no such file or directory, stat '/home/.../my-project/cdk.out/asset.87982448b5f41e7ee4a7bb49f3bc091290bac6433b3a7155eb9c6b02619deec4/nodejs/node_modules/.bin/adler32'] {
errno: -2,
code: 'ENOENT',
syscall: 'stat',
path: '/home/.../my-project/cdk.out/asset.87982448b5f41e7ee4a7bb49f3bc091290bac6433b3a7155eb9c6b02619deec4/nodejs/node_modules/.bin/adler32'
}

Node.js v18.17.0

问题细节

  • ls命令能看到adler32文件,权限为lrwxrwxrwx(软链接),但执行cat adler32时提示文件不存在
  • 层中安装了一个本地模块和xml2js

已尝试的无效操作

  • 升级aws-cdk
  • 手动将adler32安装到目标目录
  • 删除栈并重新部署

解决方法

1. 修复软链接指向

cd到软链接所在目录,查看链接的实际目标:

cd /home/.../my-project/cdk.out/asset.87982448b5f41e7ee4a7bb49f3bc091290bac6433b3a7155eb9c6b02619deec4/nodejs/node_modules/.bin/
ls -l adler32

如果目标路径无效(比如相对路径错误、指向了本地node_modules外的位置),重新创建软链接:

rm adler32
# 指向node_modules/adler32下的实际可执行文件,路径根据实际情况调整
ln -s ../adler32/bin/adler32 adler32

2. 禁用npm软链接生成

在层的package.json中添加配置,让npm安装时复制文件而非创建软链接:

{
  "scripts": {
    "install": "npm install --no-bin-links"
  }
}

或者直接在安装依赖时添加参数:

npm install --no-bin-links

3. 彻底清理后重新构建

清理cdk.out和本地依赖,重新安装并部署:

rm -rf cdk.out node_modules
npm install
cdk synth
cdk deploy

4. 检查本地模块依赖

如果使用了本地模块,确保其package.json中正确声明了adler32依赖,避免本地模块的软链接问题影响CDK资产打包。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:37:04