簡體   English   中英

導入不適用於Angular 2應用程序

[英]Imports not working in Angular 2 application

當我說導入不起作用時,我指的是一種特定類型的導入:來自@types的格式為import * as _ from 'lodash' 但是,我可以通過這樣做來解決這個問題: import _ from 'lodash' 到目前為止我一直在做的事情。

這個線程中有詳細記載: 將lodash導入angular2 + typescript應用程序 ,其中許多不同的人發布了一個導入是否有效而另一個不導入。 這個問題是關於確定原因的原因

到目前為止,這不是一個問題,但現在我正在嘗試使用https://github.com/angular/angularfire2包,它已經成為一個問題,因為我現在必須編輯節點包和替換: import * as firebase from 'firebase'; import firebase from 'firebase' ,否則它不知道'firebase'是。

如果我在./node_modules/angularfire2/auth/firebase_sdk_auth_backend.js記錄對象從./node_modules/angularfire2/auth/firebase_sdk_auth_backend.js端返回,我得到:

在此輸入圖像描述

如果我將其切換為import firebase from 'firebase'則應用程序加載並且日志為:

在此輸入圖像描述

我一直在搞亂我的tsconfig.json但無濟於事。 即通過將es2015更改為ES6並打開和關閉標志。 它的當前(錯誤)狀態是(我假設問題在這里,雖然我不確定):

  {
    "compilerOptions": {
      "allowSyntheticDefaultImports": true,
      "declaration": true,
      "emitDecoratorMetadata": true,
      "experimentalDecorators": true,
      "lib": [
        "dom", "es2015"
      ],
      "module": "es2015",
      "moduleResolution": "node",
      "sourceMap": true,
      "target": "es5"
    },
    "include": ["src/**/*.ts"],
    "exclude": ["node_modules"],
    "compileOnSave": false,
    "atom": {
      "rewriteTsconfig": false
    }
  }

npm -v(4.0.2)<=> tsc -v(版本2.0.10)<=>離子-v(2.1.13)如果您需要任何其他軟件包版本,我會在下面的評論中發布它們。

看來我需要能夠import * as foo from 'bar' =>我需要做些什么來實現這一點?

NB這也是一個離子2應用程序(但我不認為這會產生太大的差異)

據我所知,這是由於你的@ angular / compiler-cli版本。 如果你將它碰到2.1.1它允許從'firebase'類型導入*作為firebase。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM