nuxt-moment-jalaali v1.6.2
Nuxt Moment Jalaali
Efficient Moment.js Jalaali integration for Nuxt.js
Features
- Remove unused Moment.js locales using moment-locales-webpack-plugin for much less bundle size.
- Inject
$momentto the context everywhere.
Setup
- Add
nuxt-moment-jalaalidependency to your project
yarn add --dev nuxt-moment-jalaali
# or
npm install --save-dev nuxt-moment-jalaali- Add
nuxt-moment-jalaalito thebuildModulessection ofnuxt.config.js
export default {
buildModules: [
// Simple usage
'nuxt-moment-jalaali',
// With options
['nuxt-moment-jalaali', { /* module options */ }]
]
}:warning: If you are using Nuxt < v2.9 you have to install the module as a dependency (No --dev or --save-dev flags) and use modules section in nuxt.config.js instead of buildModules.
Using top level options
export default {
buildModules: [
'nuxt-moment-jalaali'
],
moment: {
/* module options */
}
}Typescript setup
Add the types to your "types" array in tsconfig.json after the @nuxt/types entry.
:warning: Use @nuxt/vue-app instead of @nuxt/types for nuxt < 2.9.
tsconfig.json
{
"compilerOptions": {
"types": [
"@nuxt/types",
"nuxt-moment-jalaali"
]
}
}Why?
For typescript to be aware of the additions to the
nuxt Context, thevue instanceand thevuex store, the types need to be merged via declaration merging by addingnuxt-moment-jalaalito your types.
Configuration
To strip all locales except en:
export default {
buildModules: [
'nuxt-moment-jalaali'
]
}To strip all locales except en, fr and fa:
export default {
buildModules: [
'nuxt-moment-jalaali'
],
moment: {
locales: ['fa', 'fr']
}
}Note: en is built into Moment and can’t be removed!
Set default locale
You can set a default locale via the defaultLocale option. It must be included
int the locales you keep (or 'en') and will only work when using the plugin option.
export default {
buildModules: [
'nuxt-moment-jalaali'
],
moment: {
defaultLocale: 'fa',
locales: ['fa']
}
}dialect
You can set dialect option. see more
default value : persian-modern
Possible values: persian-modern, persian, false
Plugins
You can import plugins to moment. See a list of plugins
export default {
buildModules: [
'nuxt-moment-jalaali'
],
moment: {
plugins: [
'moment-strftime',
'moment-fquarter'
]
}
}Note: Don't need import Jalaali Calendar to plugin.
Note: Don't forget to install each plugin.
Timezone
You can enable moment-timezone via the timezone option.
export default {
buildModules: [
'nuxt-moment-jalaali'
],
moment: {
timezone: true
}
}You can filter time zone data and thus produce significant savings in file size. See all options in moment-timezone-data-webpack-plugin.
export default {
buildModules: [
'nuxt-moment-jalaali'
],
moment: {
timezone: {
matchZones: ['Iran'],
startYear: 2000,
endYear: 2030
}
}
}Set default time zone
You can set a default time zone via the defaultTimezone option.
export default {
buildModules: [
'@nuxtjs/moment'
],
moment: {
defaultTimezone: 'Asia/Tehran'
}
}Disable plugin
This module also registers a plugin to include all needed locales as well as injecting moment as $moment to Vue context. You can disable this behaviour using plugin: false.
export default {
buildModules: [
'nuxt-moment-jalaali'
],
moment: {
plugin: false
}
}Using inside templates
You can easily use $moment service from templates.
<div v-text="$moment(...)"></div>
<div>{{ $moment(...) }}</div>
<div>{{ $moment(...).format('jYYYY/jM/jDD') }}</div>License
Copyright (c) Nuxt Community