如何将jquery导入vendor.ts Angular 2 webpack

时间:2016-10-31 09:56:43

标签: angular typescript

我正在尝试根据webpack设置angular 2 app。 我看到在vendor.ts中我们有这种结构。

// Angular 2
import '@angular/platform-browser';
import '@angular/platform-browser-dynamic';
import '@angular/core';
import '@angular/common';
import '@angular/http';
import '@angular/router';

// RxJS
import 'rxjs';


// Other vendors for example jQuery, Lodash or Bootstrap
// You can import js, ts, css, sass, ...

我想导入jQuery(例如),但我不知道是什么。因为当我试图这样做但它没有工作。我做错了什么?谢谢你的帮助。

import 'jquery/dist/jquery.min.js';

所以我不知道为什么rxjs导入OK但jquery没有:)

1 个答案:

答案 0 :(得分:2)

这是我实施它的方式:

  1. 我在我的Webpack配置文件的DateTime creationDate = DateTime.Now.Date; //sets time component to 00:00 DateTime otherDate = new DateTime(2016, 11, 2, 0,0,0); //also initializies with time 00:00 int diff = (int)(otherDate-creationDate).TotalDays; //number of days between the two dates 部分有一个别名:

    resolve

    这将允许你写

    resolve: { ... alias: { jquery: "jquery/src/jquery" } }

    而不是

    import 'jquery';

    在vendor.ts

  2. 使用Webpack import 'jquery/dist/jquery.min.js';使ProvidePluginjQuery全局:

    $

  3. 我可能错了(我自己从ng2开始)但我认为通过在vendor.ts中导入angular / core,你告诉Webpack将该模块包含在生成的包中,稍后在代码中你通常会导入一些特定的部分像plugins: [ ... new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery', "window.jQuery": 'jquery' }), ... ]这样的模块 - 你可以在代码中使用import { NgModule } from '@angular/core';