如何使用 Ionic 3 将 Node JS 升级到 v14.x?

2024-03-08

根据我在这个 TS/Node 项目中遇到的错误(对于简单的 TypeScript 仅 REST API),建议的修复(此处提到(https://github.com/heineiuo/rippledb/issues/148 https://github.com/heineiuo/rippledb/issues/148)) 是我需要 Node v14.x 之类的东西 我最初一直跳到 v18.x,并且该教程项目已构建并运行。https://www.mongodb.com/compatibility/using-typescript-with-mongodb-tutorial https://www.mongodb.com/compatibility/using-typescript-with-mongodb-tutorial

然而,Node 18.x 甚至降级到 Node v14.15.5 都会破坏具有以下 ionic 配置的 ionic 3 项目中的构建 apk 和浏览器进程。

$ ionic info

Ionic:

   Ionic CLI          : 6.13.1 (C:\Users\AXM\AppData\Roaming\npm\node_modules\@ionic\cli)
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.4

Cordova:

   Cordova CLI       : 11.0.0
   Cordova Platforms : android 10.1.2, browser 5.0.3
   Cordova Plugins   : cordova-plugin-ionic-webview 4.1.3, (and 15 other plugins)

Utility:

   cordova-res : 0.15.3
   native-run  : not installed

System:

   Android SDK Tools : 26.1.1 (C:/Users/AXM/AppData/Local/Android/Sdk)
   NodeJS            : v10.16.0 (C:\Program Files\nodejs\node.exe)
   npm               : 6.9.0
   OS                : Windows 10  ...really 11 :)

我没有记录的最初的抱怨我相信 sass 失败在哪里。 谷歌搜索我遇到了这篇文章,虽然不是特别关于“ionic 3”说降级。

Node Sass 尚不支持您当前的环境:Windows 64 位且运行时不受支持 (88) https://stackoverflow.com/questions/64612707/node-sass-does-not-yet-support-your-current-environment-windows-64-bit-with-uns

  "scripts": {
        "clean": "ionic-app-scripts clean",
        "build": "ionic-app-scripts build",
        "lint": "ionic-app-scripts lint",
        "ionic:build": "ionic-app-scripts build",
        "ionic:serve": "ionic-app-scripts serve",
        "watch": "ionic-app-scripts watch && beep ",
        "serve:before": "watch",
        "emulate:before": "build",
        "deploy:before": "build",
        "build:before": "build",
        "run:before": "build",
        "run:after": "beep",
        "serve:after": "beep",
        "beep": "bash.exe beep.sh",
        "beep0": "bash.exe -c \"echo -en '\\a' \" ",
        "releasePWA": "ionic cordova build browser --prod --release"
    },
    "dependencies": {
        "@angular/common": "5.0.3",
        "@angular/compiler": "5.0.3",
        "@angular/compiler-cli": "5.0.3",
        "@angular/core": "5.0.3",
        "@angular/forms": "5.0.3",
        "@angular/platform-browser": "^5.0.3",
        "@angular/platform-browser-dynamic": "5.0.3",
        "@ionic-native/android-full-screen": "^4.20.0",
        "@ionic-native/app-version": "^4.20.0",
        "@ionic-native/clipboard": "^4.20.0",
        "@ionic-native/core": "4.5.2",
        "@ionic-native/document-viewer": "^4.7.0",
        "@ionic-native/file": "^4.7.0",
        "@ionic-native/file-transfer": "^4.7.0",
        "@ionic-native/in-app-browser": "4.5.2",
        "@ionic-native/ionic-webview": "^5.36.0",
        "@ionic-native/social-sharing": "4.5.2",
        "@ionic-native/splash-screen": "^4.7.0",
        "@ionic-native/status-bar": "4.5.2",
        "@ionic-native/toast": "4.6.0",
        "@ionic/pro": "1.0.16",
        "@ionic/storage": "2.1.3",
        "@types/youtube": "0.0.46",
        "archiver": "^5.3.1",
        "child_process": "^1.0.2",
        "clipboard-js": "0.3.3",
        "com.verso.cordova.clipboard": "https://github.com/VersoSolutions/CordovaClipboard.git",
        "cordova-browser": "5.0.3",
        "cordova-clipboard": "~1.0.0",
        "cordova-plugin-device": "1.1.4",
        "cordova-plugin-file": "^6.0.1",
        "cordova-plugin-file-transfer": "^1.7.1",
        "cordova-plugin-fullscreen": "^1.2.0",
        "cordova-plugin-inappbrowser": "~1.7.1-dev",
        "cordova-plugin-splashscreen": "^4.0.3",
        "cordova-plugin-whitelist": "^1.3.3",
        "cordova-plugin-x-socialsharing": "~5.1.6",
        "cordova-plugin-x-toast": "~2.6.0",
        "cordova-sqlite-storage": "~2.0.3",
        "danielsogl-cordova-plugin-clipboard": "1.0.2",
        "ionic-angular": "3.9.2",
        "ionic-plugin-keyboard": "~2.2.1",
        "ionicons": "3.0.0",
        "node-apk": "^1.1.1",
        "rxjs": "5.5.2",
        "sw-toolbox": "3.6.0",
        "url-exist": "^3.0.0",
        "zone.js": "0.8.18"
    },
    "devDependencies": {
        "@ionic/app-scripts": "^3.2.4",
        "@types/node": "^9.6.61",
        "cordova-android": "^10.1.2",
        "cordova-plugin-apkupdater": "^4.0.0",
        "cordova-plugin-app-version": "^0.1.14",
        "cordova-plugin-ionic-webview": "^4.1.3",
        "tslint": "^5.10.0",
        "tslint-ionic-rules": "0.0.16",
        "typescript": "^2.8.3",
        "viewport-units-buggyfill": "0.6.2"
    },
    "cordovaPlugins": [
        "cordova-plugin-whitelist",
        "cordova-plugin-console",
        "cordova-plugin-statusbar",
        "cordova-plugin-device",
        "cordova-plugin-splashscreen",
        "ionic-plugin-keyboard",
        "cordova-plugin-x-socialsharing"
    ],
    "cordovaPlatforms": [
        {
            "platform": "android",
            "version": "",
            "locator": "android"
        },
        {
            "platform": "browser",
            "version": "",
            "locator": "browser"
        }
    ],
    "description": "UPS.ion: project",
    "config": {
        "ionic_source_map": "source-map",
        "ionic_copy": "./copy.config.js"
    },
    "cordova": {
        "plugins": {
            "cordova-sqlite-storage": {},
            "cordova-plugin-x-toast": {},
            "cordova-clipboard": {},
            "cordova-plugin-file-transfer": {},
            "cordova-plugin-file": {},
            "cordova-plugin-whitelist": {},
            "ionic-plugin-keyboard": {},
            "cordova-plugin-device": {},
            "cordova-plugin-ionic-webview": {
                "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
            },
            "com.verso.cordova.clipboard": {},
            "cordova-plugin-splashscreen": {},
            "cordova-plugin-inappbrowser": {},
            "cordova-plugin-x-socialsharing": {},
            "cordova-plugin-fullscreen": {},
            "cordova-plugin-statusbar": {},
            "cordova-plugin-apkupdater": {},
            "cordova-plugin-app-version": {}
        },
        "platforms": [
            "browser"
        ]
    }
}

无论如何,我不擅长解决这些问题,这是我的 package.json 我没有回到 Node v10.16.0,在构建时没有完全恢复,出现一些奇怪的新问题

ionic cordova build browser --prod --release

I get

> ionic-app-scripts.cmd build --prod --target cordova --platform browser
[07:44:15] ionic-app-scripts 3.2.4
[07:44:15] build prod started ...
[07:44:15] clean started ...
[07:44:15] clean finished in 2 ms
[07:44:15] copy started ...
[07:44:15] deeplinks started ...
[07:44:15] deeplinks finished in 293 ms
[07:44:15] ngc started ...
[07:44:20] typescript error
Invalid provider for the NgModule 'AppModule in S:/_W/ARP/UPS.ion/SRC/UPS.ion.3/src/app/app.module.ts' -
only instances of Provider and Type are allowed, got: [[object Object], Clipboard in
S:/_W/ARP/UPS.ion/SRC/UPS.ion.3/node_modules/@ionic-native/clipboard/index.d.ts, Toast in
S:/_W/ARP/UPS.ion/SRC/UPS.ion.3/node_modules/@ionic-native/toast/index.d.ts, SocialSharing in
S:/_W/ARP/UPS.ion/SRC/UPS.ion.3/node_modules/@ionic-native/social-sharing/index.d.ts, AndroidFullScreen in
S:/_W/ARP/UPS.ion/SRC/UPS.ion.3/node_modules/@ionic-native/android-full-screen/index.d.ts, ?null?]

[07:44:20] ionic-app-script task: "build"
[07:44:20] Error: The Angular AoT build failed. See the issues above
Error: The Angular AoT build failed. See the issues above
at S:\_W\ARP\UPS.ion\SRC\UPS.ion.3\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:237:55
at step (S:\_W\ARP\UPS.ion\SRC\UPS.ion.3\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:32:23)
at Object.next (S:\_W\ARP\UPS.ion\SRC\UPS.ion.3\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:13:53)
at fulfilled (S:\_W\ARP\UPS.ion\SRC\UPS.ion.3\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:4:58)
[ERROR] An error occurred while running subprocess ionic-app-scripts.

ionic-app-scripts.cmd build --prod --target cordova --platform browser exited with exit code 1.

Re-running this command with the --verbose flag may provide more information.

我用谷歌搜索了很多其他东西

  1. NgModule“AppModule”的提供程序无效
  2. 错误:Angular AoT 构建失败

并进行了许多猜测工作尝试(npm uninstall this...npm install that...)。 我还清除了所有 lint 错误,但这也没有帮助。

有趣的是,删除 app.modules.ts 中第 120..124 行下方显示的 5 个提供商列表可以使构建顺利,但浏览器构建不会运行,与 APK 构建相同。

[![enter image description here][1]][1]

也许还需要升级一些其他东西,才能拥有适用于这两个项目的较新版本的节点(我不能失去我的 ionic3 项目)。

抱歉,事情很复杂...


使用不同版本的 Node 来运行每个应用程序可能会有所帮助。工具NVM https://github.com/nvm-sh/nvm对此非常有用,如果您还没有安装它,请继续安装。

在一个 shell 中,安装较新的 Node 版本,例如nvm install lts/gallium and nvm use lts/gallium。清除node_modules并重新安装依赖项(rm -rf ./node_modules && npm i)并在那里运行您的服务器内容。

在另一个 shell 中,安装旧的 Node 版本,例如nvm install lts/erbium and nvm use lts/erbium。再次,清除 node_modules 并重新安装依赖项(rm -rf ./node_modules && npm i)并在那里运行您的 Ionic 3 项目。

如果这没有帮助,最好将应用程序的删除版本放在 Github 上,并附上复制错误的说明,以便进一步调试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Ionic 3 将 Node JS 升级到 v14.x? 的相关文章

  • 何时不使用承诺[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在阅读了数十篇关于 es6 Promise 有多伟大以及为什么我们应该实现它们的文章之后 我有这样的感觉 ALL我的 不平凡的 JavaScri
  • 如何以非阻塞方式在 Node.js 中搜索数组?

    我有一个数组是 4ff023908ed2842c1265d9e4 4ff0d75c8ed2842c1266099b 我必须找出以下内容是否在该数组内 4ff0d75c8ed2842c1266099b 这是我写的 Array prototyp
  • 尝试将 Firebase 版本回滚到 2.X

    我最近更新到了新的 Firebase 3 但不幸的是 据我所知 它目前不支持 Geofire 查询 这对我的应用程序很重要 我已经将应用程序中的其他所有内容都转为使用 Firebase 2 但是当我尝试时要将我的应用程序部署到 fireba
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标
  • 如何调试 Gulp 任务?

    如何调试我的中定义的 gulp 任务gulpfile js使用诸如 Google Chrome 调试器之类的调试器逐行单步执行任务的代码 对于 Node js 6 3 版本 您可以使用 inspect flag https nodejs o
  • 为什么此类方法中的“this”未定义?

    我试图搜索似乎整个互联网 但我仍然对我为微服务编写的 JS 类的问题感到烦恼 仍在学习中 因此 我尝试在实例化对象上调用类方法 根据我的知识和我的 我认为是错误的 单元测试 它应该可以工作 好吧 我将从我收到的错误开始 GET api us
  • 将 TypeScript 项目与 Webpack 捆绑时,Node.js 提示“ReferenceError: require is not Define”

    我有一个简单的test ts我想使用 webpack 捆绑的文件 该文件包含一些代码和以下导入 没有任何错误 import from interval Observable of pipe Subject timer BehaviorSub
  • 电话 GAP 会话存储

    我使用手机 GAP 开发 iPhone 应用程序 在我的应用程序中 我们使用外部数据库 用户使用 Web 服务登录 登录后我需要存储用户 ID 我如何使用手机 GAP 存储用户 ID 我可以使用手机 GAP会话存储可以吗 哪位知道的请帮忙
  • 如何在 Node JS 应用程序中顺序启动两个命令

    我使用 mocha chai 为我的 Node js 应用程序编写了一些单元测试 我想通过package json文件的scripts属性依次启动node JS服务器和测试套件 我的节点版本是6 9 4 我的 package json 中的
  • 将nodejs Express静态请求重定向到https

    我需要将所有 http 请求重定向到 https 包括对静态文件的请求 My code app use express static dirname public app get function req res if req secure
  • 检查用户是否从后端 Firebase 身份验证登录

    在我的前端 用户使用 Firebase 身份验证浏览器登录 那部分工作得很好 除了 Firebase 后端之外 我还有提供其他内容的 NodeJS 后端 但是 我需要仅向经过身份验证的用户提供内容 我的问题是 有没有办法让我的 NodeJS
  • PDF 附件 NodeMailer

    预先感谢您的回复 我编写了一些使用nodemailer 0 7 1的代码 它发送电子邮件并将pdf附加到电子邮件中 但是 pdf 附件在编码时会自行损坏或截断或发生其他情况 我之所以说这是附件之前的文件 即我本地的文件 是512kb 而电子
  • Firebase CLI 部署错误:“现在在 Firebase CLI 中禁用部署到 Node.js 10 以下的运行时。”

    我有一个使用 Cloud Functions for Firebase 的项目 在将 Firebase CLI 更新到版本 9 0 0 后 我收到一条错误消息 错误 函数目录中的 package json 有一个引擎字段 不受支持 有效的选
  • PhoneGap/Cordova 应用程序通知

    我是 PhoneGap Cordova 的新手 我希望向我的应用程序添加一些通知 推送通知 因此当应用程序上发布新文章时 它会提醒用户 本地通知 在设定的时间间隔 日期和时间 我可以提示用户我的应用程序上的最新文章 我进行了大量搜索 但找不
  • npm install 的问题(Angular)

    今天我尝试创建一个新项目 所以我使用这个命令 ng new NAME style less 并在我的cmder中弹出错误和警告 所以我卸载了 Roaming npm 和 npm cache 中的节点和文件 然后我安装了node并再次下载cm
  • 多次训练brain.js?

    在第一次训练后 如何将新信息 仅新信息 而不是所有信息 因为这会花费太多性能 训练到我的用 Brain js 制作的神经网络 它有点粗糙 但您可以使用以下结构来实现 如果我们加入 2 个训练数据集 旧数据集与新数据集 然后重新训练keepN
  • 在 Cordova 中合并文件的多个部分

    在我的 Cordova 应用程序中 我正在下载任意文件 例如图像或视频文件 这是通过 Cordova 文件传输插件和 Range 标头完成的 因为我需要分段下载文件 我的问题是 我想将几 个小 字节 文件合并回原来的文件中 他们曾经在其中使
  • 单击在 Whatsapp 或通过 PhoneGap 的任何社交应用程序中共享的链接时如何打开应用程序?

    1 当我通过phonegap插件分享链接到whatsapp时 当用户点击链接时 它应该检查是否安装了特定的应用程序 如果是 请在应用程序中打开该链接 或者打开显示下载应用程序的 Play 商店链接 您所描述的场景 其中设备拦截 HTTP 协
  • 让 Jest 全局设置和全局拆卸在 TypeScript 项目中工作

    我想运行一个在运行测试之前打开数据库连接的函数 全局设置 以及另一个在运行测试后关闭数据库连接的函数 全局拆卸 目前我有以下配置 包 json jest testEnvironment node globalSetup src jest g
  • Android GetPTLAFormat 上的 Phonegap 错误

    我们正在开发一个使用 jQuery 移动和电话间隙的应用程序 一切似乎都工作正常 但是当在连接的 Android 手机上运行应用程序时 我们在 Eclipse logcat 中看到大量类似这样的错误 0 GetPTLAFormat inva

随机推荐

  • 将 mysql 表转储到 CSV(stdout),然后将输出通过隧道传输到另一台服务器

    我正在尝试将数据库表移动到另一台服务器 复杂的是当前运行该表的机器几乎没有剩余空间 所以我正在寻找一个可以通过网络工作的解决方案 我尝试过从 src 机器上 mysqldumping 数据库并将其通过管道传输到目标 mysql 中 但我的数
  • 如何从 pytesseract 获得最佳结果?

    我正在尝试使用 OpenCV 和 Pytesseract 从图像中读取文本 但结果不佳 我有兴趣阅读文本的图像是 https www lubecreostorepratolapeligna it gb img logo png https
  • WPF 可编辑组合框验证

    我想要完成的是能够验证输入到可编辑组合框的新类别或从现有组合框的类别列表中选择一个类别 验证仅适用于 selectedItem 不适用于输入到 Text 的新文本 一旦我添加ValidateOnDataErrors True 对于 Comb
  • Visual Studio:立即窗口中的 IntelliSense 在哪里?

    看起来 立即 窗口需要一些像 IntelliSense 一样的活力 有人同意 不同意吗 这会在 VS2008 2010 中出现吗 如果您没有自动出现智能感知 请立即按 Ctrl 空格键 和乔尔一样 智能感知似乎是从封闭的窗口中进来的
  • 如何使用 scipy 和 lfilter 进行实时过滤?

    免责声明 我可能不太擅长 DSP 因此在使该代码正常工作时遇到的问题比我应有的要多 我需要在传入信号发生时对其进行过滤 我试图让这段代码工作 但到目前为止我还无法做到 参考文献scipy signal lfilter 文档 https do
  • 为什么 Msxml DocumentElement/SelectSingleNode 不返回任何内容?

    DocumentElement 属性和 SelectSingleNode 继续不返回任何内容 我已经验证 xml 加载正确 问题似乎出在 xml 解析器中 xml 没有任何命名空间 因此不需要设置 Private Function Pars
  • 使用 IntlDateFormatter 格式化 PHP 日期

    我注意到 当用 PHP 格式化日期时IntlDateFormatter http php net manual en class intldateformatter php根据语言的不同 结果可能会有很大不同 例子 formatter ne
  • 不同窗口大小的滚动总和

    我正在寻找随着窗口大小变化计算滚动总和的最快方法 我使用下面的代码 但是对于长度为 1M 的向量来说 它太慢了 Thanks set seed 1 n 10L x runif n window pmin sample 1 10 n TRUE
  • Twbs分页无法加载数据表中的新页面数据

    您好 我正在处理分页 发现当我单击第二页时无法从 twbs 插件加载数据 事实上 该方法是从 ajax 调用中调用的 但数据表数据仍然相同 有人可以告诉我该怎么做才能用服务器上的新数据填充表格 查看 thymeleaf 和 spring b
  • 更新的运行状况检查是否会导致 App Engine 部署失败?

    我们将谷歌应用程序引擎运行状况检查从旧版本更新为新版本 现在我们的部署失败了 该项目的其他内容没有改变 我们测试了默认设置 然后进行了扩展检查以防万一 这是错误 ERROR gcloud app deploy Error Response
  • Firebase 存储 getMetadata() 问题

    我一直在尝试从 Firebase Storage 获取图像文件的元数据 md5hash 并检查它是否与用户手机上图像文件的 md5hash 不相等 问题是 即使哈希值相同 我得到的结果也是不同的 这是我试图获取元数据并进行比较的代码 for
  • 测试所有对象是否具有相同的成员值

    我有一个简单的课程python questions tagged python class simple object def init self theType someNum self theType theType self some
  • ListView 滚动 - 一项一项

    我有一个必须一次显示 4 个项目的 ListView 我必须一项一项地滚动 用户滚动 ListView 后 我必须重新调整滚动以适合 4 个项目 我的意思是 我无法将某个项目显示一半 还有一个问题 有没有办法获取当前ListView的scr
  • 如何为 Azure 表存储 REST 请求生成 SharedKeyLite

    我尝试使用 Postman 调用 Azure 表存储 但不断收到 服务器无法验证请求 确保值 授权标头格式正确 包括签名 我在 Postman 中用于预调用脚本的代码如下 var storageAccount mystorageaccoun
  • Python selenium:显式等待加载两个元素之一

    有没有一种方法可以让我等待两个元素之一加载到硒中 我正在使用显式等待 到目前为止 还无法找到解决方案 简单地做 WebDriverWait driver 5 until lambda driver driver find element B
  • jQuery Mobile 背景图像未显示在全屏 iPad Web 应用程序上

    我已经在 data role page 元素上设置了背景 如下所示 div style background transparent url img background jpg no repeat 它在桌面浏览器和 iPad safari
  • 有没有类似Codecademy for Java的东西[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有谁知道像这样的网站代码学院 http www codecademy com专注于 Java 编程教学 Codeacademy com 使用 Java
  • 在没有验证的情况下模仿验证行为

    我们的应用程序中有几个数据对象最终绑定到网格 我们让它们实现 IDataErrorInfo 接口 以便通过向属性添加错误消息 我们可以看到行标题更改样式并且 DataGridCell 获得红色边框 一切都很好 我们现在有一个额外的要求 即我
  • PostgreSQL INSERT FROM SELECT 带有附加列

    我有桌子T1在数据库中DB1和桌子T2在数据库中DB2 这些表具有几乎相同的列集 除了列C additional in T1 它不存在于T2 我需要传输所有行T2 to T1 设置某个值C additional对于我插入的每一行 例如 T1
  • 如何使用 Ionic 3 将 Node JS 升级到 v14.x?

    根据我在这个 TS Node 项目中遇到的错误 对于简单的 TypeScript 仅 REST API 建议的修复 此处提到 https github com heineiuo rippledb issues 148 https githu