VSCode本身不能运行Solidity代码,仅支持编辑、编译及协同执行环境;右下角显示Plain Text是因未手动设置语言模式为Solidity,且需在settings中配置"*.sol": "solidity",同时每个.sol文件首行必须严格添加// SPDX-License-Identifier: MIT。

VSCode 本身不能“运行”Solidity 代码——它不执行合约逻辑,只负责编辑、编译和与执行环境(如 Hardhat、Foundry 或 Ganache)协同。真正运行合约,必须通过框架启动本地节点、部署到链上、再调用函数。常见误操作是直接点“运行”按钮或双击.sol文件,结果什么也没发生。
为什么右下角显示 Plain Text,语法高亮和补全全失效
根本原因不是插件没装,而是 VSCode 没把 .sol 文件识别为 Solidity 语言。
- 打开任意
.sol文件,看右下角状态栏:如果显示Plain Text或Unknown,说明语言模式未激活 - 点击该文字,在弹出菜单中**手动选择
Solidity**(注意不是Solidity (Beta)或Solidity Language Server) - 若列表里没有
Solidity,检查插件是否已启用、是否重启过 VSCode、插件版本是否 ≥0.0.137(旧版语言服务器易崩溃) - 顺手在设置里搜
files.associations,添加:"*.sol": "solidity",一劳永逸
npx hardhat compile 报错 Cannot find module 'hardhat'
这不是没装 Hardhat,而是 Node.js 模块作用域错了:全局安装 npm install -g hardhat 在 VSCode 集成终端中大概率不可见。
- 确保你在项目根目录(含
package.json)下操作,不是随便打开一个文件夹就敲命令 - 先运行
npm init -y初始化项目 - 再运行
npm install --save-dev hardhat(必须是--save-dev,不是-g) - 验证:执行
npx hardhat,应输出任务列表;若报错,检查当前目录是否存在node_modules/hardhat/ - VSCode 终端默认工作路径可能不是项目根——右键项目文件夹 → “Open in Integrated Terminal”,或手动
cd进去
编译失败:SPDX license identifier not provided
这是 Solidity 0.6.8+ 的硬性要求,不是警告,少写一行就整个项目编译中断。Hardhat 默认开启严格 SPDX 检查。
- 在每个
.sol文件最顶部、任何内容(包括空行)之前,加且仅加一行:// SPDX-License-Identifier: MIT - 可用值只有
MIT、Apache-2.0、Unlicense;写ISC或自定义字符串照样报错 - OpenZeppelin 的依赖合约自带 SPDX,但你自己写的
contracts/MyToken.sol必须手动加 - VSCode Solidity 插件支持自动补全:在文件首行按
Ctrl+Space,会提示 SPDX 行
最容易被忽略的是:SPDX 行必须是文件第一行,前面不能有任何空行、BOM 字符或注释。哪怕多一个换行,Hardhat 就直接拒绝编译——这个细节连很多老手都会栽跟头。


















