"moment" 没有导出成员 'default'
"moment" has no exported member 'default'
我正在使用 moment.js
更改我的应用程序的本地日期格式,但出现以下错误:
"moment" has no exported member 'default' when importing the library.
下面是我的代码:
import {Inject, Injectable, Optional} from '@angular/core';
import {DateAdapter, MAT_DATE_LOCALE, MatDateFormats} from '@angular/material';
import * as _moment from 'moment';
import {default as _rollupMoment, Moment} from 'moment';
const moment = _rollupMoment || _moment;
您似乎无法导入 moment
如您所见in the documentation,
对于 Typescript 2.x 尝试在 tsconfig.json
文件的 compilerOptions
中添加 "moduleResolution": "node"
然后使用以下任何语法:
import * as moment from 'moment';
import moment = require('moment');
PS:确保您已安装 moment.js
和 npm
:
npm install --save moment
尝试将 "allowSyntheticDefaultImports": true
添加到 "compilerOptions"
下的 tsconfig.json
下面是这个问题的完整解决方案:
第一个:
npm install moment --save
npm install @angular/material-moment-adapter
第二个:
在您的 package.json 依赖项下确保您有以下代码:
"@angular/material-moment-adapter": "^8.2.3",
第三名:
在编译器选项下的 tsconfig.json 文件中添加以下内容:
"allowSyntheticDefaultImports": true
第四:
使用以下代码修改您的组件:
import { MomentDateAdapter } from '@angular/material-moment-adapter';
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
import * as _moment from 'moment';
import { default as _rollupMoment } from 'moment';
const moment = _rollupMoment || _moment;
export const MY_FORMATS = {
parse: {
dateInput: 'LL',
},
display: {
dateInput: 'YYYY-MM-DD',
monthYearLabel: 'YYYY',
dateA11yLabel: 'LL',
monthYearA11yLabel: 'YYYY',
},
};
@Component({
selector: 'app-newsfeedform',
templateUrl: './newsfeedform.component.html',
styleUrls: ['./newsfeedform.component.css'],
providers: [
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
],
})
第五名:
在您的 component.html 文件日期选择器中,如以下代码:
<mat-form-field appearance="outline" fxFlex>
<input matInput [matDatepicker]="publishdate" placeholder="Publish Date"
formControlName="publishdate">
<mat-datepicker-toggle matSuffix [for]="publishdate"></mat-datepicker-toggle>
<mat-datepicker #publishdate></mat-datepicker>
</mat-form-field>
就是这样,您可以自定义 Angular material 日期选择器任何您想要的格式,只需修改上面给出的格式即可。
在 gulpfile.js 在 外部部分 添加 'moment/moment'
和 'moment'
两者
externals: [
'moment/moment',
'moment'
]
在 tsconfig.json
文件中添加以下行:
"allowSyntheticDefaultImports": true
我正在使用 moment.js
更改我的应用程序的本地日期格式,但出现以下错误:
"moment" has no exported member 'default' when importing the library.
下面是我的代码:
import {Inject, Injectable, Optional} from '@angular/core';
import {DateAdapter, MAT_DATE_LOCALE, MatDateFormats} from '@angular/material';
import * as _moment from 'moment';
import {default as _rollupMoment, Moment} from 'moment';
const moment = _rollupMoment || _moment;
您似乎无法导入 moment
如您所见in the documentation,
对于 Typescript 2.x 尝试在 tsconfig.json
文件的 compilerOptions
中添加 "moduleResolution": "node"
然后使用以下任何语法:
import * as moment from 'moment';
import moment = require('moment');
PS:确保您已安装 moment.js
和 npm
:
npm install --save moment
尝试将 "allowSyntheticDefaultImports": true
添加到 "compilerOptions"
tsconfig.json
下面是这个问题的完整解决方案:
第一个:
npm install moment --save
npm install @angular/material-moment-adapter
第二个:
在您的 package.json 依赖项下确保您有以下代码:
"@angular/material-moment-adapter": "^8.2.3",
第三名:
在编译器选项下的 tsconfig.json 文件中添加以下内容:
"allowSyntheticDefaultImports": true
第四:
使用以下代码修改您的组件:
import { MomentDateAdapter } from '@angular/material-moment-adapter';
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
import * as _moment from 'moment';
import { default as _rollupMoment } from 'moment';
const moment = _rollupMoment || _moment;
export const MY_FORMATS = {
parse: {
dateInput: 'LL',
},
display: {
dateInput: 'YYYY-MM-DD',
monthYearLabel: 'YYYY',
dateA11yLabel: 'LL',
monthYearA11yLabel: 'YYYY',
},
};
@Component({
selector: 'app-newsfeedform',
templateUrl: './newsfeedform.component.html',
styleUrls: ['./newsfeedform.component.css'],
providers: [
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
],
})
第五名:
在您的 component.html 文件日期选择器中,如以下代码:
<mat-form-field appearance="outline" fxFlex>
<input matInput [matDatepicker]="publishdate" placeholder="Publish Date"
formControlName="publishdate">
<mat-datepicker-toggle matSuffix [for]="publishdate"></mat-datepicker-toggle>
<mat-datepicker #publishdate></mat-datepicker>
</mat-form-field>
就是这样,您可以自定义 Angular material 日期选择器任何您想要的格式,只需修改上面给出的格式即可。
在 gulpfile.js 在 外部部分 添加 'moment/moment'
和 'moment'
两者
externals: [
'moment/moment',
'moment'
]
在 tsconfig.json
文件中添加以下行:
"allowSyntheticDefaultImports": true