gulp-sys-metalprismic v6.1.0
gulp-sys-metalprismic
An end-to-end Gulp build system and asset pipeline for a webapp templated by Metalsmith and content-managed by Prismic.io. Generates the following Gulp tasks for you:
clean
- Cleans the built files.views
- Generates Prismic-Metalsmith templates usinggulp-pipe-metalprismic
.images
- Processes images usinggulp-pipe-assets
.videos
- Processes videos usinggulp-pipe-assets
.fonts
- Processes fonts usinggulp-pipe-assets
.documents
- Processes documents usinggulp-pipe-assets
.extras
- Processes other miscellaneous files such asrobots.txt
andsitemap.xml
usinggulp-pipe-assets
.scripts
- Bundles JavaScripts usinggulp-pipe-assets
.styles
, - Compiles preprocessed stylesheets usinggulp-pipe-assets
.rev
- Revisions asset files by appending content hash to filenames and auto replaces old paths with fingerprinted paths in affected files. Usesgulp-pipe-assets
.sitemap
- Createssitemap.xml
from generated HTML files, based ongulp-sitemap
.serve
- Serves the app withbrowser-sync
.default
- Executes the above tasks in sequence.
Usage
import gulp from 'gulp-sys-metalprismic';
gulp.init({
src: 'app',
dest: 'public',
scripts: {
entry: {
application: './application.js'
}
},
views: {
i18n: {
default: 'en',
locales: ['en', 'fr'],
directory: 'config/locales'
},
metadata {
_: require('lodash'),
moment: require('moment')
}
},
sitemap: undefined
});
$ gulp
API
init(options[, extendsDefaults])
options
Type: Object
Options that define the behavior of this task. This object is parsed by config()
in gulp-task-helpers
, so you can target specific NODE_ENV
environments.
options.base
(required)
Type: string
Default: undefined
Fallback base path for all the subtasks if one does not exist in their individual configs.
options.dest
(required)
Type: string
Default: undefined
Fallback destination path for all the subtasks if one does not exist in their individual configs.
options.watch
Type: Object
Default:
{
tasks: [browserSync.reload]
}
Fallback watch config for all the subtasks if one does not exist in their individual configs. See the README of any of the sub packages to see what a watch config looks like.
options.views
Type: Object
Default:
{
apiEndpoint: process.env.PRISMIC_API_ENDPOINT,
accessToken: process.env.PRISMIC_ACCESS_TOKEN
}
Options for gulp-pipe-metalprismic
.
options.images
Type: Object
Default:
{
base: `${options.base}`,
src: `images/**/*`,
dest: `${options.dest}/assets`
}
Options for images
task from gulp-pipe-assets
.
options.videos
Type: Object
Default:
{
base: `${options.base}`,
src: `videos/**/*`,
dest: `${options.dest}/assets`
}
Options for videos
task from gulp-pipe-assets
.
options.fonts
Type: Object
Default:
{
base: `${options.base}`,
src: `fonts/**/*`,
dest: `${options.dest}/assets`
}
Options for fonts
task from gulp-pipe-assets
.
options.documents
Type: Object
Default:
{
base: `${options.base}`,
src: `documents/**/*`,
dest: `${options.dest}/assets`
}
Options for documents
task from gulp-pipe-assets
.
options.extras
Type: Object
Default:
{
base: `${options.base}`,
src: `*`,
dest: `${options.dest}`
}
Options for extras
task from gulp-pipe-assets
.
options.scripts
Type: Object
Default: See gulp-pipe-assets
Options for scripts
task from gulp-pipe-assets
.
options.styles
Type: Object
Default: See gulp-pipe-assets
Options for styles
task from gulp-pipe-assets
.
options.rev
Type: Object
Default:
{
envs: {
production: {
src: `${options.dest}`
}
}
}
Options for rev
task from gulp-pipe-assets
.
options.sitemap
Type: Object
Default: undefined
Options for sitemap
task based on gulp-sitemap
.
options.clean
Type: Array
Default:
[
`${options.dest}`,
`${options.base}/views/.prismic`
]
Path(s) to delete during the clean
task.
options.serve
Type: Object
Default:
{
server: {
baseDir: `${options.dest}`,
},
files: false,
notify: false,
port: process.env.PORT || 3000,
logLevel: 'info',
open: false
}
Options for browser-sync
. To serve the app include the --serve
or --s
flag when executing the default task.
extendsDefaults
Type: boolean
Default: true
Maps to useConcat
param in config()
of gulp-task-helpers
.
Watching for Changes
You can pass a --watch
or --w
flag to the Gulp command to enable file watching, like so:
$ gulp --watch
By default, files that were emitted as source files will be marked for watching and the task name assigned to associated subtasks will be executed whenever a file changes. To override this behavior use the global options.watch
or the individual options.watch
for each subtask.
Serving the App
You can pass a --serve
or --s
flag to the Gulp command to serve the app. When used in conjuction with the --watch
flag, upon every file change browserSync.reload
will be called.
Disclaimer
This is an experimental project driven by internal requirements.
License
This software is released under the MIT License.
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago