生产版本找不到环境信息,但是开发版本没有错误

时间:2019-02-18 06:48:33

标签: angular firebase webpack angular7

我有一个angular 7应用程序,当在开发模式下构建时,它可以编译并且可以无错误地提供服务。但是,当我使用生产设置构建应用程序时,它可以毫无问题地编译,但是找不到环境信息,而只能在浏览器中找到错误。

vendor.d1094f98a9a59a44ad59.js:1 ERROR ReferenceError: env is not defined
    at new n (main.04dfe8e133fc5e316d84.js:1)
    at Vs (vendor.d1094f98a9a59a44ad59.js:1)
    at Ms (vendor.d1094f98a9a59a44ad59.js:1)
    at mu (vendor.d1094f98a9a59a44ad59.js:1)
    at hu (vendor.d1094f98a9a59a44ad59.js:1)
    at Object.Du [as createRootView] (vendor.d1094f98a9a59a44ad59.js:1)
    at e.create (vendor.d1094f98a9a59a44ad59.js:1)
    at e.create (vendor.d1094f98a9a59a44ad59.js:1)
    at t.bootstrap (vendor.d1094f98a9a59a44ad59.js:1)
    at vendor.d1094f98a9a59a44ad59.js:1
mi @ vendor.d1094f98a9a59a44ad59.js:1
vendor.d1094f98a9a59a44ad59.js:1 ERROR Error: Uncaught (in promise): ReferenceError: env is not defined
ReferenceError: env is not defined
    at new n (main.04dfe8e133fc5e316d84.js:1)
    at Vs (vendor.d1094f98a9a59a44ad59.js:1)
    at Ms (vendor.d1094f98a9a59a44ad59.js:1)
    at mu (vendor.d1094f98a9a59a44ad59.js:1)
    at hu (vendor.d1094f98a9a59a44ad59.js:1)
    at Object.Du [as createRootView] (vendor.d1094f98a9a59a44ad59.js:1)
    at e.create (vendor.d1094f98a9a59a44ad59.js:1)
    at e.create (vendor.d1094f98a9a59a44ad59.js:1)
    at t.bootstrap (vendor.d1094f98a9a59a44ad59.js:1)
    at vendor.d1094f98a9a59a44ad59.js:1
    at M (polyfills.65f19a590318fc6860f7.js:1)
    at polyfills.65f19a590318fc6860f7.js:1
    at t.invokeTask (polyfills.65f19a590318fc6860f7.js:1)
    at Object.onInvokeTask (vendor.d1094f98a9a59a44ad59.js:1)
    at t.invokeTask (polyfills.65f19a590318fc6860f7.js:1)
    at e.runTask (polyfills.65f19a590318fc6860f7.js:1)
    at g (polyfills.65f19a590318fc6860f7.js:1)

在开发模式下进行构建符合预期。不知道为什么生产会有所不同。终端中没有错误。

期望的产品版本与开发版本保持一致

2 个答案:

答案 0 :(得分:0)

environment.prod.ts中的environments/environment.prod.ts文件似乎正在发生问题,请确保该文件与您的environment.ts文件匹配。 当您使用产品environment.prod.ts进行构建时,将替换environment.ts。 看一下两个文件中的命名,看起来您的environment.prod.ts中可能有

export const environment = {
    production: true,
    etc...
}

代替

export const env = {
    production: true,
    etc...
}

就像多数民众赞成在提示错误。 http://tattoocoder.com/angular-cli-using-the-environment-option/是一个很好的网址,可让您更好地了解角度环境。

答案 1 :(得分:0)

这是令人反感的声明:

import { environment as env } from '@env/environment';

要更正错误,只需删除别名并将该行(和任何引用)更新为:

import { environment } from '@env/environment';

有人知道为什么使用as env语法会导致此问题吗?