在将我的应用程序(angular2-express-starter的一个分支)部署到Heroku时,我遇到了这个奇怪的问题.https://totalautosapp.herokuapp.com/ 起初我认为它是Heroku,但我已经将它部署到netlify并且同样发生.
它说:
Error: Unexpected value 'null' imported by the module 't'
是的,有很多类似的问题让我能够更好地理解这个问题,但是让我眼花缭乱的是模块't'.它指的是什么模块?
大多数问题都表明意外的值是'undefined',而不是'null'.这让我想到它正在导入一个空模块,但仍然不知道哪一个正在这样做,即使它在devEnvironment中工作.
这是我的app.module.ts
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; import { AppComponent } from './app.component'; import { routing } from './app.router'; import { effects, store, instrumentation } from './store'; import { SharedModule } from './shared/shared.module'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, SharedModule, FormsModule, HttpModule, store, effects, routing, instrumentation ], bootstrap: [ AppComponent ] }) export class AppModule {}
如果有人会深入了解,这是我的共享模块:https://codeshare.io/adKKz5
任何帮助将不胜感激.
编辑:
使用console.log我能够比较本地构建和heroku的输出.所以我检测到null模块是来自ngrx/store-devtools的StoreDevToolsModule.
此输出来自行console.log(instrumentation)中的本地运行
Object { ngModule: StoreDevtoolsModule(), providers: Array[3] }
而这一个来自heroku
null main.d61dd7a248d9bbd30ca6.bundle.js:1:5868
Error: Unexpected value 'null' imported by the module 't'
我遇到了同样的问题,这是因为我的NgModules类具有"export default"修饰符.查看您的模块是否具有导出默认值并删除"默认"修饰符,因为ngc不支持它.
当我想通过npm run build
搜索许多解决方案来构建项目时遇到了同样的问题,但没有一个有帮助。问题的解决方案很简单!
我正在使用,ng-lazyload-image
并且导入时没有大括号。在将它们添加到LazyLoadImageModule
vuala之后,它起作用了。如果这将对某人有所帮助,将很高兴。
问题:
import LazyLoadImageModule from 'ng-lazyload-image'; @NgModule({ imports: [ LazyLoadImageModule, ....] })
解决方案:
import { LazyLoadImageModule } from 'ng-lazyload-image'; @NgModule({ imports: [ LazyLoadImageModule, ....] })