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

引入@solana/web3.js时报'import'仅可配合'sourceType: module'使用如何解决

报错原因

你遇到的是@solana/web3.js在浏览器端打包时的典型问题:该库依赖Node.js原生核心模块(如crypto、stream、Buffer、process等),浏览器环境没有这些模块的原生实现,同时你的项目中存在Babel6和Babel7的依赖冲突,导致打包失败。

解决方案

按以下步骤操作即可修复:

  1. 清理冲突依赖
    你当前同时安装了Babel6的旧版预设和Babel7的新版预设,会引发编译冲突,先卸载冗余依赖:
npm uninstall babel-preset-env babel-preset-es2015 babel-preset-stage-0 babel-core
  1. 安装Node模块polyfill
    安装浏览器端需要的Node核心模块兼容包:
npm install --save-dev crypto-browserify stream-browserify buffer process
  1. 修改package.json配置
    替换原有配置中的browser、browserify、scripts字段,修改后内容如下:
"scripts": {
    "start": "budo src/index.js -- -t babelify"
},
"dependencies": {
    "@babel/runtime": "^7.14.8",
    "@solana/web3.js": "^1.29.2"
},
"devDependencies": {
    "@babel/core": "^7.15.5",
    "@babel/plugin-transform-runtime": "^7.15.0",
    "@babel/preset-env": "^7.15.0",
    "babel-preset-react": "^6.24.1",
    "babelify": "^10.0.0",
    "browserify": "^16.5.2",
    "budo": "^11.6.4",
    "buffer": "^6.0.3",
    "crypto-browserify": "^3.12.0",
    "process": "^0.11.10",
    "stream-browserify": "^3.0.0"
},
"browser": {
    "crypto": "crypto-browserify",
    "stream": "stream-browserify"
},
"browserify": {
    "transform": [
        [
            "babelify",
            {
                "presets": [
                    "@babel/preset-env"
                ],
                "plugins": [
                    "@babel/plugin-transform-runtime"
                ]
            }
        ]
    ],
    "insertGlobalVars": {
        "Buffer": () => "require('buffer').Buffer",
        "process": () => "require('process')"
    }
}
  1. 重新安装依赖
    删除原有依赖缓存后重新安装:
rm -rf node_modules package-lock.json
npm install

修改完成后重新执行npm start即可正常启动。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:24:03