0

我正在尝试升级旧项目以使用最新的 NativeScript 版本运行。我正在按照 NativeScript 升级页面中列出的步骤进行操作。据我所知,这个项目正在使用 4.2.0 平台和 6.1.0 Angular 库,以及以下开发依赖项:

    "nativescript-dev-typescript": "~0.7.3",
    "nativescript-dev-webpack": "0.15.1",

当我运行命令npm i nativescript-dev-typescript@latest --save-dev更新 TS 时,下一步使用的文件:./node_modules/.bin/ns-upgrade-tsconfig丢失。webpack 步骤也是如此。

我尝试忽略这一点并完成了其他升级步骤,但是当我尝试运行我的应用程序时,我得到了指向这篇文章的错误,这让我处于同样的情况(./node_modules/.bin/update-ns-webpack --deps --configs由于文件丢失而无法运行)

我尝试从 github 下载 .zip 文件并将这些脚本手动添加到我的.bin文件夹中,但是它们无法运行,缺少依赖项。

最后,作为最后的手段,我恢复了对应用程序的所有更改,并尝试构建但它失败了,我假设是因为我现在安装了最新版本的 NativeScript。注意在我尝试执行升级步骤之前,该应用程序正在构建并运行良好。

这是我得到的当前错误(在还原所有内容并尝试使用 Sidekick 构建之后)

[19-04-15 14:46:04.000] Error detected during LiveSync on emulator-5554 for D:\Documents\GitHub\geonasium-app. Error: Command gradlew.bat failed with exit code 1 Error output: 
 Exception in thread "main" java.io.IOException: Couldn't find 'D:\Documents\GitHub\geonasium-app\platforms\android\build-tools\sbg-bindings.txt' bindings input file. Most probably there's an error in the JS Parser execution. You can run JS Parser with verbose logging by executing "node 'D:\Documents\GitHub\geonasium-app\platforms\android\build-tools\jsparser\js_parser.js' enableErrorLogging".
    at org.nativescript.staticbindinggenerator.Generator.generateBindings(Generator.java:126)
    at org.nativescript.staticbindinggenerator.Generator.writeBindings(Generator.java:97)
    at org.nativescript.staticbindinggenerator.Main.main(Main.java:48)
FAILURE: Build failed with an exception.

最终我只想让我的应用程序更新到最新的 NativeScript、TypeScript、Webpack 和 Angular

更新我删除了 package-lock.json、tsconfig.json 和 webpack.js,并从 package.json 中删除了对 nativescript-dev-typescript 和 nativescript-dev-webpack 的引用。我清理了钩子、node_modules 和平台文件夹并再次运行升级步骤。

这次 TypeScript 步骤成功了,我的 node_modules/.bin 文件夹中有 ns-upgrade-tsconfig 脚本,但是 webpack 步骤失败了,它的升级脚本仍然丢失。

4

1 回答 1

0

它最终点击问题是根本没有安装 devDependencies。是什么导致 devDependencies 无法安装?

NODE_ENV=production

如果 NODE_ENV 设置为生产环境,则不会安装 devDependencies,因为显然我们不会在生产环境中安装开发依赖项。

将环境变量设置回生产已经解决了这个问题。

于 2019-04-16T03:37:34.410 回答