Làm cách nào để sử dụng thư viện Moment.js trong ứng dụng bản in 2 góc?


231

Tôi đã cố gắng sử dụng nó với các ràng buộc bản thảo:

npm install moment --save
typings install moment --ambient -- save

kiểm tra:

import {moment} from 'moment/moment';

Và không có:

npm install moment --save

kiểm tra:

var moment = require('moment/moment');

Nhưng khi tôi gọi khoảnh khắc.format (), tôi gặp lỗi. Nên đơn giản, bất cứ ai cũng có thể cung cấp một kết hợp dòng lệnh / nhập sẽ hoạt động?


1
vui lòng chia sẻ lỗi của bạn
basarat 3/2/2016

1
Nếu tôi cài đặt khoảnh khắc.d.ts và sử dụng nhập, tôi sẽ gặp lỗi biên dịch ERROR trong ... / typings / browser / ambient / khoảnh khắc / khoảnh khắc.d.ts (9,21): lỗi TS2503: Không thể tìm thấy không gian tên 'khoảnh khắc' . Và nếu tôi không cài đặt các kiểu chữ và yêu cầu sử dụng, tôi sẽ nhận được Uncaught TypeError: khoảnh khắc.format không phải là một chức năng
Sergey Aldoukhov

Có quá nhiều câu trả lời cũ ở đây. Vui lòng xem tại đây: github.com/angular/angular-cli/wiki/iêu
Didia

3
Câu trả lời Hinrich của làm việc cho tôi với ng4 (tính đến tháng 6 năm 2017) stackoverflow.com/a/43257938/1554495
thăn

SergeyAldoukhov đây có phải là câu trả lời tốt nhất? Chắc chắn @ Hinrich là?
jenson-button-event

Câu trả lời:


513

Cập nhật tháng 4 năm 2017:

Kể từ phiên bản 2.13.0, Moment bao gồm tệp định nghĩa bản thảo. https://momentjs.com/docs/#/use-it/typescript/

Chỉ cần cài đặt nó với npm, trong loại bảng điều khiển của bạn

npm install --save moment

Và sau đó trong ứng dụng Angular của bạn, nhập dễ dàng như thế này:

import * as moment from 'moment';

Thế là xong, bạn nhận được hỗ trợ Bản đánh máy đầy đủ!

Chỉnh sửa phần thưởng: Để nhập một biến hoặc thuộc tính như Momenttrong Bản mô tả, bạn có thể thực hiện việc này, ví dụ:

let myMoment: moment.Moment = moment("someDate");

1
điều quan trọng là thêm nó vào tệp app.module của bạn và nhập mảng? hoặc bạn có thể chỉ cần nhập nó trong một thành phần và sử dụng nó?
Kinda R

3
@Kinda R Bạn có thể sử dụng nó trong bất kỳ tập tin nào, nó không phải là cụ thể.
Hinrich

Bây giờ, những plugin về khoảnh khắc, như khoảnh khắc thì sao?
Greywire

2
Trên thực tế câu trả lời này không phải là cụ thể của Angular, nó áp dụng cho bất kỳ dự án Typecript nào.
Hinrich

Tuyệt, và làm thế nào tôi sử dụng đường ống trên mẫu?
vladanPro

98

momentlà một nguồn tài nguyên toàn cầu của bên thứ ba. Các đối tượng khoảnh khắc sống trên windowtrình duyệt. Do đó, nó không đúng với importứng dụng angular2 của bạn. Thay vào đó, bao gồm <script>thẻ trong html của bạn sẽ tải tệp moment.js.

Để làm cho TypeScript hài lòng, bạn có thể thêm

declare var moment: any;

ở đầu các tệp của bạn nơi bạn sử dụng nó để dừng các lỗi biên dịch hoặc bạn có thể sử dụng

///<reference path="./path/to/moment.d.ts" />

hoặc sử dụng tsd để cài đặt tệp moment.d.ts mà TypeScript có thể tự tìm thấy.

Thí dụ

import {Component} from 'angular2/core';
declare var moment: any;

@Component({
    selector: 'example',
    template: '<h1>Today is {{today}}</h1>'
})
export class ExampleComponent{
    today: string = moment().format('D MMM YYYY');
}

Chỉ cần chắc chắn để thêm thẻ script trong html hoặc khoảnh khắc của bạn sẽ không tồn tại.

<script src="node_modules/moment/moment.js" />

Tải mô-đun moment

Trước tiên, bạn sẽ cần thiết lập trình tải mô-đun, chẳng hạn như System.js để tải các tệp commonjs khoảnh khắc

System.config({
    ...
    packages: {
        moment: {
            map: 'node_modules/moment/moment.js',
            type: 'cjs',
            defaultExtension: 'js'
        }
    }
});

Sau đó, để nhập khoảnh khắc vào tệp khi cần sử dụng

import * as moment from 'moment';

hoặc là

import moment = require('moment');

BIÊN TẬP:

Ngoài ra còn có các tùy chọn với một số trình đóng gói như Webpack hoặc SystemJS builder hoặc Browserify sẽ giữ khoảnh khắc của đối tượng cửa sổ. Để biết thêm thông tin về những điều này, vui lòng truy cập trang web tương ứng của họ để được hướng dẫn.


3
Điều đó là có thể, nhưng rất dài vì bạn cần phải có một trình tải mô-đun, chẳng hạn như Systemtải trong phiên bản nút chung của thời điểm và sau đó bạn có thể tham chiếu nó với import * as moment from 'moment';hoặc import moment = require('moment');cho tất cả các ý định và mục đích là giống hệt nhau, nhưng có một số khác biệt tinh tế trong bản thảo.
SnareChops

@SnareChops typings install moment --ambient -- savekhông typingskéo tập tin định nghĩa xuống và tạo tham chiếu đến ///<reference path="./path/to/moment.d.ts" />? Tôi gặp lỗi tương tự khi chạynpm run tsc
Shawn Northrop

Điều này là sai lệch; Không có gì sai với importkhoảnh khắc ing.
Stiggler

2
Câu trả lời này không đầy đủ vì bạn phải sử dụng typings để quản lý định nghĩa thời điểm. Ngoài ra, nó không cần nhập bất cứ thứ gì. Xin vui lòng, xem câu trả lời của tôi dưới đây .
Bernardo Pacheco

8
Câu trả lời này là sai lệch, thực tế là thời điểm đó là một biến toàn cục không có nghĩa là bạn "phải" tải nó dưới dạng thẻ script. Bạn có thể, và nên, gói nó trong một tệp của nhà cung cấp nếu bạn đang sử dụng một loại gói nào đó (Webpack). Bạn cũng có thể giải quyết việc gán toàn cầu nếu bạn sử dụng gói web và trình tải thích hợp.
Shlomi Assaf

49

Sau đây làm việc cho tôi.

Đầu tiên, cài đặt các định nghĩa loại cho thời điểm này.

typings install moment --save

(Lưu ý: KHÔNG --ambient)

Sau đó, để làm việc xung quanh việc thiếu một xuất khẩu thích hợp:

import * as moment from 'moment';

2
Tôi đã phải làm import moment from "moment";thay vì để làm cho nó hoạt động.
Aetherix

3
Câu trả lời này không đầy đủ vì bạn không cần nhập bất cứ thứ gì. Xin vui lòng, xem câu trả lời của tôi dưới đây .
Bernardo Pacheco

1
Ngoài ra, mỗi lần lặp lại của ionic 2 beta / angular 2 RC dường như mang đến một cách nhập khẩu mới, do đó bạn có thể phải thử một vài trong số những đề xuất này mặc dù một điểm mà chúng từng là câu trả lời cập nhật nhất
phù hợp vào

import * as moment from 'moment';là chìa khóa
nima

Tôi không thể tìm thấy "khoảnh khắc" ("npm") trong sổ đăng ký. Khi tôi cố gắng cài đặt các định nghĩa, xin vui lòng giúp đỡ
Sebastián Rojas

28

Tôi sẽ đi theo sau:

npm install moment --save

Để mảng systemjs.config.jstập tin của bạn mapthêm:

'moment': 'node_modules/moment'

để packagesthêm mảng:

'moment': { defaultExtension: 'js' }

Trong thành phần của bạn. Sử dụng: import * as moment from 'moment/moment';

và đó là nó. Bạn có thể sử dụng từ lớp thành phần của bạn:

today: string = moment().format('D MMM YYYY');


25

Hiện đang sử dụng các mô-đun,

thử import {MomentModule} from 'angular2-moment/moment.module';

sau npm install angular2-moment

http://ngmodules.org/modules/angular2-moment


76
Điều này là không đủ, bởi vì điều này chỉ cài đặt đường ống. Rõ ràng, bạn không thể làm việc với các ngày Moment trong các mô-đun của mình theo cách này.
ntaso

1
rất thích một số mẹo về cách sử dụng các bộ lọc angular2-khoảnh khắc trong lớp thành phần
trickpatty

3
cái này phải là: nhập {MomentModule} từ 'angular2-khoảnh khắc / khoảnh khắc.module';
Yasser

1
Đây không phải là câu trả lời được lựa chọn nữa. Hãy xem câu trả lời của @Hinrich. npm install moment --save, npm install @types/moment --save stackoverflow.com/questions353166168/
Mạnh

thay vì cài đặt một trình bao bọc, nó sẽ giống nhưimport * as moment from 'moment';
M. Atif Riaz

22

Để sử dụng nó trong một Typescriptdự án, bạn sẽ cần phải cài đặt thời điểm:

npm install moment --save

Sau khi cài đặt, bạn có thể sử dụng nó trong bất kỳ .ts tệp sau khi nhập nó:

import * as moment from "moment";


1
Lưu ý ** @ loại / khoảnh khắc @ 2.13.0: Đây là định nghĩa loại sơ khai cho Khoảnh khắc ( github.com/moment/moment ). Khoảnh khắc cung cấp định nghĩa loại riêng của nó, vì vậy bạn không cần cài đặt @ loại / khoảnh khắc!
Winnemucca

1
Tuyệt quá! Dưới đây là tài liệu tham khảo chính thức: khoảnh khắc js.com/docs/#/use-it/typescript
Andrea

14

--- Cập nhật ngày 11/11

Các kiểu chữ hiện không được dùng nữa và nó đã được thay thế bằng npm @types . Từ giờ trở đi việc khai báo kiểu sẽ không yêu cầu công cụ nào ngoài npm. Để sử dụng Moment, bạn sẽ không cần phải cài đặt các định nghĩa loại thông qua @types vì Moment đã cung cấp các định nghĩa loại riêng.

Vì vậy, nó giảm xuống chỉ còn 3 bước:

1 - Thời điểm cài đặt bao gồm các định nghĩa loại:

npm install moment --save

2 - Thêm thẻ script trong tệp HTML của bạn:

<script src="node_modules/moment/moment.js" />

3 - Bây giờ bạn có thể chỉ cần sử dụng nó. Giai đoạn = Stage.

today: string = moment().format('D MMM YYYY');

--- Câu trả lời gốc

Điều này có thể được thực hiện chỉ trong 3 bước:

1 - Cài đặt định nghĩa thời điểm - tệp * .d.ts :

typings install --save --global dt~moment dt~moment-node

2 - Thêm thẻ script trong tệp HTML của bạn:

<script src="node_modules/moment/moment.js" />

3 - Bây giờ bạn có thể chỉ cần sử dụng nó. Giai đoạn = Stage.

today: string = moment().format('D MMM YYYY');

Tôi gặp sự cố với phiên bản đánh máy có sẵn tại dt. Nó đang sử dụng một phiên bản cũ của khoảnh khắc không có các phương thức mới mà tôi muốn sử dụng. Nếu tôi làm theo khuyến nghị của họ ( khoảnh khắc js.com / docs / # / use-it / system-js ) thì ứng dụng sẽ biên dịch, nhưng không tải trong trình duyệt. Tôi sắp đi vào ngõ cụt ...
Fabricio

Tôi không thể lấy thẻ script để làm việc với cli góc. Có ý nghĩa hơn là nhập khẩu mặc dù
Winnemucca

@Bernardo Tôi đã thử làm theo các bước của bạn và cài đặt khoảnh khắc.js. Sau khi declare var moment;, đánh máy không làm việc cho tôi. Sau khi gõ moment().không có intellisense. Tôi đoán tôi đang thiếu một vài bước ở đây.
Shyamal Parikh

Khá chắc chắn rằng điều này không hoạt động, làm thế nào để gói web biết để bao gồm điều này với các mô-đun nút xây dựng?
ngày 5

12

Dành cho Angular 7+ (Hỗ trợ 8 và 9 cũng được) :

1: Cài đặt khoảnh khắc bằng lệnh npm install moment --save

2: Không thêm bất cứ thứ gì vào app.module.ts

3: Chỉ cần thêm câu lệnh nhập vào đầu trang của bạn component tệp hoặc bất kỳ tệp nào khác như thế này:import * as moment from 'moment';

4: Bây giờ bạn có thể sử dụng momentbất cứ nơi nào trong mã của bạn. Giống như:

myDate = moment(someDate).format('MM/DD/YYYY HH:mm');


Tôi đã phải nhập như thế này: import * as moment_ from 'moment'; const moment = moment_;Nếu không thì tôi đã nhận đượcError: Cannot call a namespace ('moment')
Snook

Rất kỳ quặc để nghe. moment_chỉ là một tên theo nghĩa đen. Nó có thể là bất cứ điều gì, tôi nghĩ rằng ...
Rahmat Ali

1
Chỉ cần lưu ý rằng import * as moment from 'moment';tăng kích thước của gói lên ~ 500kb. Có một bài viết hay giải thích vấn đề với giải pháp Medium.jonasbandi.net/ Kẻ
Kosmonaft

9

với ng CLI

> npm install moment --save

trong app.module

import * as moment from 'moment';

providers: [{ provide: 'moment', useValue: moment }]

trong thành phần

constructor(@Inject('moment') private moment)

Bằng cách này, bạn nhập khoảnh khắc một lần

CẬP NHẬT Angular => 5

{
   provide: 'moment', useFactory: (): any => moment
}

Đối với tôi làm việc trong prod với aot và cũng với phổ quát

Tôi không thích sử dụng bất kỳ nhưng sử dụng khoảnh khắc. Tôi đã nhận được

Error   Typescript  Type 'typeof moment' is not assignable to type 'Moment'. Property 'format' is missing in type 'typeof moment'.

Tôi nhận được Parameter 'moment' implicitly has an 'any' typelỗi.
Azimuth

Điều này có làm việc cho bạn trong chế độ prod? Nó hoạt động tốt ở chế độ dev, nhưng khi tôi chạy ứng dụng của mình ở chế độ prod thì không thành công. Ứng dụng của tôi có các mô-đun tải lười biếng quá (chỉ trong trường hợp có vấn đề). Khoảnh khắc kết thúc là null.
jbgarr

@jbgarr Tôi đã thử trong một mô-đun lười biếng như constructor (@Inject ('khoảnh khắc') khoảnh khắc riêng tư) {console.log ('date', khoảnh khắc ()); } không có vấn đề gì
Người đánh cá

8

Thư viện angular2-khoảnh khắc có các đường ống như {{myDate | amTimeAgo}} để sử dụng trong các tệp .html.

Những đường ống tương tự cũng có thể được truy cập dưới dạng các hàm typecript trong tệp lớp thành phần (.ts). Đầu tiên cài đặt thư viện theo hướng dẫn:

npm install --save angular2-moment

Trong nút_modules / angular2-khoảnh khắc bây giờ sẽ là các tệp ".pipe.d.ts" như calendar.pipe.d.ts , date-format.pipe.d.ts và nhiều hơn nữa.

Mỗi cái chứa tên hàm typecript cho ống tương đương, ví dụ, DateFormatPipe () là hàm cho amDateFormatPipe .

Để sử dụng DateFormatPipe trong dự án của bạn, hãy nhập và thêm nó vào các nhà cung cấp toàn cầu của bạn trong app.module.ts:

import { DateFormatPipe } from "angular2-moment";
.....
providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}, ...., DateFormatPipe]

Sau đó, trong bất kỳ thành phần nào mà bạn muốn sử dụng hàm, nhập nó lên trên, đưa vào hàm tạo và sử dụng:

import { DateFormatPipe } from "angular2-moment";
....
constructor(.......,  public dfp: DateFormatPipe) {
    let raw = new Date(2015, 1, 12);
    this.formattedDate = dfp.transform(raw, 'D MMM YYYY');
}

Để sử dụng bất kỳ chức năng nào theo quy trình này. Sẽ thật tuyệt nếu có một cách để có quyền truy cập vào tất cả các chức năng, nhưng không có giải pháp nào ở trên làm việc cho tôi.


Đây là lời cảm ơn tuyệt vời! Ở mọi nơi cho khoảnh khắc angular2 chỉ cho bạn cách sử dụng nó trên mẫu. Bài viết rất hữu ích của bạn đã chỉ cho tôi cách sử dụng nó để thao tác giá trị trước khi tôi xuất nó ra mẫu.
Andrew Junior Howard

@royappa Tôi thấy một số sử dụng mô-đun ống và một số sử dụng chỉ trong giây lát để truy cập nó trong Bản in. Tôi hiểu rằng bạn đang nói rằng bạn có thể sử dụng phiên bản ống dẫn trong Bản mô tả nhưng tác hại của việc cài đặt cả hai là gì?
Jacques

5

Nếu bạn ổn khi thêm các gói của bên thứ ba, tôi đã sử dụng thư viện angular2-khoảnh khắc . Việc cài đặt khá đơn giản và bạn nên làm theo các hướng dẫn mới nhất trên README. Tôi cũng đã cài đặt typings như là kết quả của việc này.

Làm việc như một cơ duyên đối với tôi, và hầu như không thêm bất kỳ mã nào để làm cho nó hoạt động.


5

Không chắc đây có phải là vấn đề với mọi người hay không, tuy nhiên ... Sử dụng SystemJS và MomentJS làm thư viện, điều này đã giải quyết nó cho tôi

/*
 * Import Custom Components
 */
import * as moment from 'moment/moment'; // please use path to moment.js file, extension is set in system.config

// under systemjs, moment is actually exported as the default export, so we account for that
const momentConstructor: (value?: any) => moment.Moment = (<any>moment).default || moment;

Hoạt động tốt từ đó cho tôi.


5

cho angular2 RC5 điều này làm việc cho tôi ...

khoảnh khắc cài đặt đầu tiên qua npm

npm install moment --save

Sau đó nhập khoảnh khắc trong thành phần mà bạn muốn sử dụng nó

import * as moment from 'moment';

cấu hình cuối cùng khoảnh khắc trong systemjs.config.js "map" và "gói"

// map tells the System loader where to look for things
  var map = {
  ....
  'moment':                     'node_modules/moment'
  };
  // packages tells the System loader how to load when no filename and/or no extension
  var packages = {
    ...
    'moment':                       { main:'moment', defaultExtension: 'js'}
  };

Bất kỳ ý tưởng về các bước tương đương cho webpack là gì?
Bharat Geleda

@BharatGeleda Không cần làm gì với webpack. Sử dụng Angular2 và angular-cli tôi chỉ cần cài đặt và nhập nó. Tôi không cần bất kỳ kiểu chữ nào kể từ phiên bản cuối cùng của thời điểm hỗ trợ bản in.
Stanislasdrg Tái lập Monica

1
Giải pháp duy nhất khiến tôi nhập địa phương khác: import 'moment/locale/de.js';Cảm ơn!
iBaff

4

Ngoài câu trả lời của SnareChop, tôi đã phải thay đổi tệp đánh máy cho khoảnh khắc.

Trong moment-node.d.tstôi thay thế:

export = moment;

với

export default moment;


4

Phiên bản riêng của tôi về việc sử dụng Moment in Angular

npm i moment --save

import * as _moment from 'moment';

...

moment: _moment.Moment = _moment();

constructor() { }

ngOnInit() {

    const unix = this.moment.format('X');
    console.log(unix);    

}

Thời điểm nhập đầu tiên là _moment, sau đó khai báo momentbiến với loại _moment.Momentcó giá trị ban đầu là_moment() .

Nhập đơn giản thời điểm sẽ không cung cấp cho bạn bất kỳ hoàn thành tự động nào nhưng nếu bạn sẽ khai báo khoảnh khắc với Momentgiao diện loại từ _momentkhông gian tên từ 'moment'gói được khởi tạo với không gian tên khoảnh khắc được gọi_moment() sẽ cho bạn tự động hoàn thành thời điểm của api.

Tôi nghĩ rằng đây là cách sử dụng nhất thời điểm mà không cần sử dụng @types typingshoặc nhà cung cấp góc, nếu bạn đang tìm kiếm hoàn thành tự động cho các thư viện javascript vanilla như khoảnh khắc.


Cài đặt các loại sẽ cho phép bạn truy cập tự động hoàn tất:npm install @types/moment --save
jamesjansson

3

Hãy thử thêm "allowSyntheticDefaultImports": truevào của bạntsconfig.json .

Cờ làm gì?

Điều này về cơ bản cho trình biên dịch TypeScript sử dụng câu lệnh nhập ES6, nghĩa là

import * as moment from 'moment/moment';

trên một mô-đun CommonJS như Moment.js không khai báo xuất mặc định. Cờ chỉ ảnh hưởng đến việc kiểm tra loại, không phải mã được tạo.

Nó là cần thiết nếu bạn sử dụng SystemJS làm trình tải mô-đun của bạn. Cờ sẽ được tự động bật nếu bạn thông báo cho trình biên dịch TS của bạn rằng bạn sử dụng SystemJS:

"module": "system"

Điều này cũng sẽ loại bỏ bất kỳ lỗi nào được ném bởi IDE nếu chúng được cấu hình để sử dụng tsconfig.json.


2

cho angular2 với systemjs và jspm phải làm:

import * as moment_ from 'moment';
export const moment =  moment_["default"];

var a = moment.now();
var b = moment().format('dddd');
var c = moment().startOf('day').fromNow();

2

Dành cho người dùng ANGULAR CLI

Sử dụng các thư viện bên ngoài có trong tài liệu ở đây:

https://github.com/angular/angular-cli/wiki/stories-third-party-lib

Đơn giản chỉ cần cài đặt thư viện của bạn thông qua

npm cài đặt tên lib - lưu

và nhập nó trong mã của bạn. Nếu thư viện không bao gồm các kiểu chữ, bạn có thể cài đặt chúng bằng cách sử dụng:

npm cài đặt tên lib - lưu

cài đặt npm @ type / lib-name --save-dev

Sau đó mở src / tsconfig.app.json và thêm nó vào mảng kiểu:

"loại": ["tên lib"]

Nếu thư viện bạn đã thêm các kiểu chữ chỉ được sử dụng trong các bài kiểm tra e2e của bạn, thay vào đó hãy sử dụng e2e / tsconfig.e2e.json. Điều tương tự cũng xảy ra đối với các bài kiểm tra đơn vị và src / tsconfig.spec.json.

Nếu thư viện không có sẵn các kiểu chữ tại @ type /, bạn vẫn có thể sử dụng nó bằng cách thêm các kiểu chữ cho nó:

Đầu tiên, tạo một tệp typings.d.ts trong thư mục src / của bạn.

Tập tin này sẽ được tự động đưa vào như định nghĩa loại toàn cầu. Sau đó, trong src / typings.d.ts, thêm đoạn mã sau:

khai báo mô-đun 'typless-gói';

Cuối cùng, trong thành phần hoặc tệp sử dụng thư viện, hãy thêm đoạn mã sau:

nhập * dưới dạng typlessPackage từ 'typless-pack'; typlessPackage.method ();

Làm xong. Lưu ý: bạn có thể cần hoặc thấy hữu ích để xác định thêm các kiểu chữ cho thư viện mà bạn đang cố sử dụng.


Kiểm tra bài viết này nếu bạn cần hướng dẫn từng bước. Medium.com/@jek.bao.choo/ trộm
wag0325

1

Tôi đã làm theo lời khuyên để cho phép allowSy mergDefaultImports (vì không có xuất khẩu từ lúc này để sử dụng cho tôi), sử dụng Hệ thống. Sau đó, tôi làm theo lời khuyên của ai đó để sử dụng:

import moment from 'moment';

Với khoảnh khắc được ánh xạ trong cấu hình system.js của tôi. Các báo cáo nhập khẩu khác sẽ không làm việc cho tôi, vì một số lý do


Đây là câu trả lời cuối cùng ngay bây giờ, nhưng là câu trả lời duy nhất đang hoạt động!
TJL

1

Sau đây làm việc cho tôi:

typings install dt~moment-node --save --global

Nút khoảnh khắc không tồn tại trong kho lưu trữ kiểu chữ. Bạn cần chuyển hướng đến Được nhập chắc chắn để làm cho nó hoạt động bằng cách sử dụng tiền tố dt.


1

Với systemjs những gì tôi đã làm là, bên trong systemjs.config tôi đã thêm bản đồ cho moment

map: {
   .....,
   'moment': 'node_modules/moment/moment.js',
   .....
}

Và sau đó bạn có thể dễ dàng nhập momentchỉ bằng cách làm

import * as moment from 'moment'

1

Tôi biết đó là một chủ đề cũ, nhưng đối với tôi giải pháp đơn giản nhất thực sự hiệu quả là:

  1. Cài đặt nó trước npm install moment --save
  2. Trong các thành phần của tôi yêu cầu nó từ node_modules và sử dụng nó:
const moment = require('../../../node_modules/moment/moment.js');

@Component({...})
export class MyComponent {
   ...
   ngOnInit() {
       this.now = moment().format();
   }
   ...
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.