javascript - 如何在生产模式下构建 Ionic 应用程序,Ionic 构建的行为有所不同

标签 javascript angular ionic-framework build ionic3

我正在构建用于生产的 Ionic 应用程序。为此,我正在使用 ionic build --prod 命令并且应用程序正在成功构建,但是当我在服务器上运行我的应用程序时,它会给我以下错误:

cordova.jsmain.jsVendor.js

enter image description here

(请忽略Firebase的错误)

网络标签截图为:

enter image description here

正如我所看到的构建文件夹,运行上述 ionic 命令后仅生成两个文件,即 Pollyfills.js 和“sw-toolbox.js”。

但是当我使用 Ionic serve 命令时,构建文件夹包含所有文件,即 Pollyfills.jsmain.jsmain.cssvendor.js 和“sw-toolbox.js”。

我已经尝试过各种命令,例如:

ionic cordova build android --prod --release 但它也会导致 Build 文件夹中只有两个文件,因此在控制台上出现错误。

问题是什么以及如何使此应用适合生产模式。

请查看我的 index.html 文件,我在其中提供了各种 js 文件的路径:

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
  <meta charset="UTF-8">
  <title>BOS</title>
  <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=yes">
  <meta name="format-detection" content="telephone=no">
  <meta name="msapplication-tap-highlight" content="no">
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-database.js"></script>
  <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
  <link rel="manifest" href="manifest.json">
  <meta name="theme-color" content="#000">
<!--Share this Code -->
   <script src="//platform-api.sharethis.com/js/sharethis.js#property=5b1fb235e4b7fb00118c596f&product=sticky-share-buttons"></script>
  <!-- add to homescreen for ios -->
 <meta name="apple-mobile-web-app-capable" content="yes">

<link rel="apple-touch-icon" href= "assets/imgs/logoSplash.png",>
<link rel="apple-touch-startup-image" href="assets/imgs/logoSplash.png">
  <link href="https://fonts.googleapis.com/css?family=Oxygen" rel="stylesheet">
  <!-- cordova.js required for cordova apps (remove if not needed) -->
  <script src="cordova.js"></script>


  <script>
    if ('serviceWorker' in navigator) {
      navigator.serviceWorker.register('service-worker.js')
        .then(() => console.log('service worker installed'))
        .catch(err => console.error('Error', err));
    }
  </script>

  <link rel="preload" href="build/main.css" as="style"
        onload="this.onload=null;this.rel='stylesheet'">

</head>
<body>

  <!-- Ionic's root component and where the app will load -->
  <ion-app></ion-app>
<noscript>
  <h3 style="color: #673ab7; font-family: Helvetica; margin: 2rem;">
      Sorry, but app is not available without javascript
  </h3>
</noscript>
  <!-- The polyfills js is generated during the build process -->
  <script src="build/polyfills.js"></script>

  <!-- The vendor js is generated during the build process
       It contains all of the dependencies in node_modules -->
  <script src="build/vendor.js"></script>

  <!-- The main bundle js is generated during the build process -->
  <script src="build/main.js"></script>

</body>
</html>

最佳答案

我已经找到了我的问题的解决方案。我去了 node_modules -> @ionic -> app-scripts -> config -> webpack.config

在那个文件中,我注释了一行代码:

function getProdLoaders() {
  if (process.env.IONIC_OPTIMIZE_JS === 'true') {

// return optimizedProdLoaders; <= This one

  }
  return devConfig.module.loaders;
}

现在,它正在运行。

关于javascript - 如何在生产模式下构建 Ionic 应用程序,Ionic 构建的行为有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51607800/

相关文章:

javascript - 缩放后如何重新居中

javascript - onclick:改变位置后做一些事情

javascript - 通过 chrome url 将 javascript 加载到 HEAD

angular - ng2-charts 条形图不显示数据/图形标签

node.js - 类型错误 : Cannot read property 'headers' of null! MEAN 堆栈

Angular2 重定向到默认页面

css - 如何更改 ionic 2 中 ion-header 的背景颜色?

javascript - 如何使用 queryselectorAll 方法获取多个 div id

javascript - promise 的动态顺序执行

ios - Ionic ios 构建不使用位置