【发布时间】:2017-10-27 23:12:47
【问题描述】:
我正在使用 Visual Studio 2017 的 Core 2.0 + Angular 4 模板。我已经很容易地启动并运行了基本程序,但是我很想将第三方库集成到应用程序中。我从时刻 js 开始。首先,我做到了 npm install --保存时刻 node_modules 中的哪个加载时刻 然后我打开 webpack.config.vendor.js 并为非摇树添加了时刻,如下所示:
const nonTreeShakableModules = [
...
'jquery',
'moment/moment'
];
(请注意,我也尝试了“moment”,尽管在我运行 webpack 时两者都有效,但最终也没有用。我选择“moment/moment”,因为 node_module/moment/moment.js 存在)
然后,我跑了
webpack --config webpack.config.vendor.js
而且没有错误。
注意:当我打开生成的 vendor.js 文件时,我现在将其视为文件的一部分:
**-/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js
-//! version : 2.19.1
-//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
-//! license : MIT
-//! momentjs.com**
;(function (global, factory) {....
所以我相信 webpack 至少可以找到文件。
但是问题是我现在如何实际使用时刻,因为它捆绑在 vendor.js 中。在这一点上,我对如何实际使用 moment js 感到茫然。
我试过了:
import * as moment from 'moment/moment' (or 'moment' when i tried that)
然后:
declare var moment: any
然后这个,直到运行时也没有失败:
import { Moment } from 'moment/moment'
constructor(private moment: Moment) {}
我知道,但我必须尝试一下
但每一次,任何使用时刻的尝试都会告诉我时刻是未定义的。
有人可以告诉我如何将 momentjs 添加到此应用程序以及如何在我的 Angular 组件中实际使用它吗?
奖励积分:我看到默认情况下添加了 JQuery。我如何在 Typescript 中使用它给定一个 el: ElementRef 来执行?我假设它相似,但我不确定(我知道我应该避免使用 jQuery,但我正在迁移一个遗留站点,它只有一点我没有时间替换的 jquery)
【问题讨论】:
-
你需要使用typings安装jquery的类型定义。如果它已经安装,那么你可以使用它
标签: angular typescript webpack visual-studio-2017