jsii-pacmak 忽略来自 @aws-sdk/util-utf8-browser 的 dist-* 文件

问题描述 投票:0回答:0

我有一个 CDK 模式的 monorepo,我分别使用 jsii 和 jsii-pacmak 构建和打包。我需要在其中一种模式中使用一些 AWS-SDK 模块,因此我捆绑了以下内容:

"bundledDependencies": [
"@aws-sdk/client-ec2",
"@aws-sdk/client-codestar-connections",
"@aws-sdk/client-sts"
],

我在 package.json 中使用 nohoist 以确保它们安装在所需模式的 node_modules 中。当我安装依赖项并构建包时,我在 node_modules 中看到以下内容:

@aws-sdk/util-utf8-browser 中的三个 dist- 文件是我本地存在的问题。但是在运行 jsii-pacmak 后,我没有看到这三个 dist- 文件。我提取了 JS tarball,发现它们丢失了。但是其他 util-* 模块不受影响。

由于这些丢失的文件,我在运行 cdk Synth/deploy 时收到以下错误:

Error: Cannot find module '<my-project-dir>node_modules/cdk/node_modules/@aws-sdk/util-utf8-browser/dist-cjs/index.js'. 
Please verify that the package.json has a valid "main" entry

因为主条目当然在

"main": "./dist-cjs/index.js"
中,而运行 jsii-pacmak 后,JS 发行版中缺少它。

完整的错误堆栈:

lalitkumarb@host cdk-patterns % cdk synth
Error: Cannot find module 'packages/cdk-patterns/node_modules/my-cdk/node_modules/@aws-sdk/util-utf8-browser/dist-cjs/index.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:353:19)
    at Function.Module._findPath (node:internal/modules/cjs/loader:566:18)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
    at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (my-cdk/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (packages/cdk-patterns/node_modules/my-cdk/node_modules/@aws-crypto/util/src/convertToBuffer.ts:5:1)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1157:10) {
  code: 'MODULE_NOT_FOUND',
  path: 'packages/cdk-patterns/node_modules/my-cdk/node_modules/@aws-sdk/util-utf8-browser/package.json',
  requestPath: '@aws-sdk/util-utf8-browser'
}

Subprocess exited with error 1

我不确定这是一个错误还是我做错了什么。值得一提的是,我还在 JSII 存储库上打开了一个 GitHub 问题https://github.com/aws/jsii/issues/4178,其中包含重现该问题的步骤。如果我能以某种方式设法打包

@aws-sdk/util-utf8-browser
中丢失的三个 dist-* 文件,问题就会得到解决。

复制步骤:

我创建了这个公共存储库以快速重现该问题:https://github.com/lalitkumarbTR/jsii-pacmak-issue请按照自述文件中提到的步骤操作。

使用的CDK和SDK版本

cdk - 2.81.0 (build bd920f2), @aws-sdk "version": "3.363.0"

环境详细信息(操作系统名称和版本等)

Mac OS Ventura 13.4 local, Ubuntu@latest on GitHub runner
typescript aws-sdk aws-cdk jsii jsii-pacmak
© www.soinside.com 2019 - 2024. All rights reserved.