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

无法在Ionic v5项目中使用@walletconnect/sign-client的问题求助

解决@walletconnect/sign-client在Ionic v5/Angular 9中的Webpack加载错误

问题根源

你的Angular 9(搭配Webpack 4)默认不会转译node_modules目录下的第三方包,但@walletconnect/sign-client v2.1.0的代码使用了Angular 9默认配置不支持的ES新语法,导致Webpack无法解析该模块,从而抛出加载错误。

解决方案(无需额外安装特殊loader)

只需调整Angular的构建配置,让它转译WalletConnect相关包即可,以下是两种可行方案:

方案一:自定义Webpack配置

  1. 在项目根目录创建webpack.config.js文件,写入以下内容:
module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        // 仅转译@walletconnect开头的包,排除其他node_modules内容
        exclude: /node_modules(?!\/@walletconnect)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      }
    ]
  }
};
  1. 安装babel相关依赖:
npm install @babel/core @babel/preset-env babel-loader --save-dev
  1. 修改angular.json,在项目的build配置中引入自定义Webpack文件:
    找到projects -> [你的项目名称] -> architect -> build -> options,添加如下字段:
"webpackConfig": "./webpack.config.js"
  1. 重启开发服务:
ionic serve

方案二:调整TypeScript与Angular配置

如果不想自定义Webpack,可通过修改配置让Angular兼容该包:

  1. 编辑tsconfig.json,修改配置项:
{
  "compilerOptions": {
    "allowJs": true,
    // 保留其他原有配置
  },
  "include": [
    "src/**/*",
    "node_modules/@walletconnect/**/*"
  ]
}
  1. 编辑angular.json,在build -> options中添加允许的CommonJS依赖:
"allowedCommonJsDependencies": [
  "@walletconnect/sign-client",
  "@walletconnect/jsonrpc-types",
  "@walletconnect/types"
]
  1. 重启开发服务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:45:49