【问题标题】:Angular2 dependency not injecting correct pathAngular2依赖没有注入正确的路径
【发布时间】:2016-03-25 09:48:36
【问题描述】:

我在浏览器控制台中收到以下错误,原因是尝试将 localStorage 与 Angular2 一起使用。它生成的路径似乎不是指node_modules,而是假设我的站点根目录中有一个localstorage.js(没有)。我只是在正常引用它(请参阅下面的 user.service),那么我该如何解决呢?我所有其他依赖项都工作正常。

http://localhost:3000/client/dev/user/services/user.service.jshttp://localhost:3000/localStorage.js 加载为“localStorage”时出错

import { Injectable } from 'angular2/core';
import { Headers } from 'angular2/http';
import { loalStorage } from 'localStorage';

@Injectable()
export class UserService {
  private loggedIn = false;

  constructor(private http: Http) {
    this.loggedIn = !!localStorage.getItem('auth_token');
  }

}

注意:我很确定 localStorage 安装没有实际问题,就好像我运行 npm list localStorage,然后它告诉我我安装了 localStorage@1.0.3

【问题讨论】:

  • 你真的为浏览器内置的东西安装了一个库吗?
  • @EricMartinez 否则,我如何让localStorage.getItem('auth_token') 之类的代码工作?

标签: javascript node.js angular


【解决方案1】:

如果你想从导入中使用 localStorage,你需要在 SystemJS 中配置它,如下所述:

System.config({
  map: {
    localStorage: 'node_modules/localStorage/lib/localStorage.js'
  },
  (...)
});

这样,您将能够使用以下导入:

import loalStorage from 'localStorage';

请参阅此问题以了解更多详细信息,因为它类似于配置 Lodash 的方式:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 2011-06-08
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多