ryn*_*nop 5 javascript momentjs systemjs angular
我通过angular2-seed(使用SystemJS)使用Angular2并尝试加载时刻 - 时区并moment.tz.guess()专门使用.
我导入:
import * as moment from 'moment-timezone';
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我在浏览器中收到以下错误:
GET /node_modules/moment-timezone/data/packed/latest.json.js 404 (Not Found)
anuglar2种子的用途defaultJSExtensions我想这是为什么不正确的.js被加入,所以我想我可能只是将其关闭了moment-timezone在tools/config/project.config.ts像这样:
this.SYSTEM_BUILDER_CONFIG.packages['moment-timezone'] = {
defaultExtension: false
//I have also tried:
map: {
'/node_modules/moment-timezone/data/packed/latest.json.js': '/node_modules/moment-timezone/data/packed/latest.json',
'/node_modules/moment-timezone/data/packed/latest.json': '/node_modules/moment-timezone/data/packed/latest.json'
}
};
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.我究竟做错了什么?
问题是,除非你告诉SystemJS你想要使用该moment-timezone-with-data-2010-2020.min.js文件,否则它将默认加载moment/index.js,这需要tz数据.
以下是正确配置和使用的步骤:
npm install moment moment-timezone --save 和 npm install @types/moment @types/moment-timezone --save-dev
在我的组件中我做import * as moment from 'moment-timezone';.
您配置SystemJS如:
...
packages: {
'moment-timezone': {
main: 'builds/moment-timezone-with-data-2010-2020.min.js',
defaultExtension: 'js'
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以使用 console.log(moment.tz.guess());
对于angular2-seed,你这样做:
project.config.ts:
...
constructor() {
this.NPM_DEPENDENCIES = [
...this.NPM_DEPENDENCIES,
{src: 'moment', inject: 'libs'},
{src: 'moment-timezone/builds/moment-timezone-with-data-2010-2020.min.js', inject: 'libs'},
];
...
const mtzc = {
main: 'builds/moment-timezone-with-data-2010-2020.min.js',
defaultExtension: 'js'
};
this.SYSTEM_BUILDER_CONFIG.packages['moment-timezone'] = mtzc;
this.SYSTEM_CONFIG_DEV.packages['moment-timezone'] = mtzc;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3869 次 |
| 最近记录: |