【问题标题】:Cannot find module “.” when building prod release找不到模块“。”在构建产品版本时
【发布时间】:2019-01-14 04:07:15
【问题描述】:

我正在开发一个以 Angular4 为核心的 Ionic4 应用程序。

这次我不需要编程方面的帮助(通过可能不是最好的),但我需要创建可以(至少)在 Google Play 商店中使用的产品包。

应用程序在手机上运行良好运行:

ionic cordova run android --device -lsc

只需在浏览器中使用:

ionic serve

但是当我为浏览器或 android 平台进行生产构建时:

ionic cordova run browser --release --prod

ionic cordova build android --release --prod

我明白了:

Uncaught Error: Cannot find module "."
    at vendor.js:1
    at vendor.js:1
    at Object.<anonymous> (vendor.js:1)
    at i (vendor.js:1)
    at Object.557 (main.js:1)
    at i (vendor.js:1)
    at window.webpackJsonp (vendor.js:1)
    at main.js:1

人们对此输出了解不多。那是因为隐式缩小和丑化,我无法关闭它以查看正在发生的事情,正如我在运行非产品时所说的那样一切正常。

我已阅读有关导致此问题的 *-umd 导入的帖子,但我不使用它们。

所以基本上我的问题是如何解决这个问题?

我有 pushed my project to the git 给愿意提供帮助的任何人,因为我真的很绝望,而且进度太落后了。

非常感谢任何形式的帮助!

编辑:我应该告诉你,你不需要任何后端来得到这个错误。它会在应用加载后立即弹出。

【问题讨论】:

  • 希望issue 会有所帮助。
  • 好吧,接受的答案涉及 /umd webpack 问题并将Geolocation 作为应用程序模块中的提供程序导入,当我这样做时,我得到circular dependencies (might be by using 'barrel' index.ts files.) 但我真的没有在其他任何地方导入 Geolocation ,所以我还是不知道
  • 我做错了,但现在我安装了@ionic-native/geolocationcordova-plugin-geolocation 并从import { Geolocation } from '@ionic-native/geolocation'; 正确导入Geolocation 但它是一样的:( repo 更新
  • 对于其他遇到此问题的人,我可以使用 this 修复它

标签: angular cordova ionic-framework production-environment multiplatform


【解决方案1】:

所以,我解决了这个问题,但我无法真正说出真正的原因。

我可以给你一些步骤来进行一些分析并找出正在发生的事情。

  1. 全局安装ionic-app-scripts并构建项目 ionic-app-scripts build
  2. cordova 运行浏览器

这应该指出一些以前没有见过的错误。 比,我发现你不能在根页面注入NavController,因为它还不存在。 reference.

我还发现有些服务注入了两次。

然后,我建议您将所有模块和提供程序注释掉,并与它的依赖项一一激活。

这样我就成功发布了产品。

【讨论】:

    猜你喜欢
    • 2020-01-21
    • 1970-01-01
    • 2022-11-08
    • 2019-07-03
    • 2022-10-26
    • 1970-01-01
    • 2019-06-06
    • 2018-03-09
    • 2020-10-06
    相关资源
    最近更新 更多