新创建的Kotlin React项目无法启动开发运行,执行kotlinNpmInstall任务时出现错误
我帮你拆解下这个问题:EISDIR符号链接错误是导致构建失败的核心原因,而那些依赖警告虽然不致命,但会影响项目长期稳定性。咱们一步步来解决:
一、先搞定致命的EISDIR符号链接错误
这个错误是npm在尝试创建符号链接时对目录执行了非法操作,在Windows环境下特别常见,要么是权限不够,要么是npm的链接策略和Windows不兼容。试试这几步:
彻底清理旧构建缓存
先把项目里的旧构建残留全部删掉,避免缓存搞事情:- 手动删除项目根目录下的
build/js文件夹 - 如果项目里有
node_modules文件夹和package-lock.json文件,也一起删掉
- 手动删除项目根目录下的
调整npm的链接配置
咱们直接让npm跳过符号链接的创建,避免权限问题:- 在项目根目录新建一个
.npmrc文件,往里面加一行:symlink=false - 要是你习惯用Gradle配置,也可以在
build.gradle.kts里的Kotlin JS插件部分添加参数:kotlin { js { browser { binaries.executable() } npmInstallTask { args.add("--no-bin-links") } } }
- 在项目根目录新建一个
重新执行构建
现在运行./gradlew kotlinNpmInstall或者直接启动开发服务器,应该就能绕过符号链接错误了。
二、解决那些烦人的依赖对等警告
这些警告都是因为Kotlin Wrappers依赖的React相关包和项目里的版本不匹配,或者缺少必要的对等依赖。解决起来也很简单:
升级Kotlin Wrappers到最新稳定版
打开你的build.gradle.kts,找到所有kotlin-wrappers相关的依赖(比如kotlin-react、kotlin-react-dom、kotlin-styled、kotlin-react-router-dom这些),把版本升级到最新的稳定版。新版本的wrappers会自动对齐React的依赖版本,能解决大部分对等依赖警告。手动补全缺失的依赖
如果升级后还有个别警告没消失,可以直接在package.json里手动添加缺失的依赖,比如:"dependencies": { "react": "^17.0.2", "react-dom": "^17.0.2", "react-is": "^17.0.2" }添加完后重新执行
npm install或者./gradlew kotlinNpmInstall就行。
内容的提问来源于stack exchange,提问作者Troy van Sleeuwen

