繁体   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