NativeScript版本迁移WebPack适配出现--env.hmr未知选项报错咨询
NativeScript版本不匹配及
--env.hmr报错解决方案 核心报错的本质是nativescript-cli版本与@nativescript/webpack版本不兼容:对应Webpack 5的@nativescript/webpack 5.x版本移除了旧版cli传递的--env.hmr参数支持,而低于8.1版本的cli创建项目时会默认拉取最新稳定依赖,导致自动安装了不兼容的Webpack 5相关包。
方案1:适配你期望的Webpack 4 + core@7.3.0环境
修正现有项目配置
- 修改
package.json中的依赖版本:
"dependencies": { "@nativescript/core": "7.3.0", // 保留其他原有业务依赖 }, "devDependencies": { "@nativescript/webpack": "^4.1.0", // 保留其他原有开发依赖 }
- 删除
node_modules、package-lock.json(或yarn.lock),重新执行npm install安装依赖。 - 运行项目时按需选择参数:
- 不需要热更新的场景,运行命令增加
--no-hmr参数:ns run android --no-hmr # 或iOS端 ns run ios --no-hmr - 需要保留热更新的场景,直接运行
ns run android --hmr,cli会自动适配Webpack 4的参数规则。
后续创建新项目避免问题
使用低版本cli创建项目时,指定7.x版本的官方模板,不会自动拉取8.x的core和Webpack 5依赖:
ns create HelloWorld --template @nativescript/template-hello-world@7.0.0
方案2:降低Webpack 5适配难度(可选)
如果后续计划升级到Webpack 5版本,不需要手动修改webpack.config.json,直接执行官方迁移命令即可自动完成依赖、配置的适配:
ns migrate
内容的提问来源于stack exchange,提问作者Xavier Palacín Ayuso
相关产品推荐
相关产品推荐

