prefix urls of static assets in a flexible way with Gulp-Url-Prefixer
Issues with the output should be reported on the GulpUrlPrefixer issue tracker.
$ npm install --save-dev gulp-url-prefixer
const gulp = require('gulp');
const urlPrefixer = require('gulp-url-prefixer');
gulp.task('default', () =>
gulp.src('src/**/*.html')
.pipe(urlPrefixer.html({
prefix: 'http://yourcdn.com/myapp/'
}))
.pipe(gulp.dest('dist'))
);
Type: object
Set options described below from its properties.
Type: array
Default:
['script', 'link', 'a', 'img', 'embed']
Set matched tags
Type: array
Default:
['href', 'src']
Set matched attributes
Type: string\function
Default: http://localhost/
used to prefix the local paths of assets. if it's a function, the return value will be used.
const path = require('path')
const pathToCdn = (pathname) =>
const extname = path.extname(pathname)
let cdn = null
switch (extname) {
case '.js':
cdn = 'http://j1.mycdn.com/mywebsite/'
break;
case '.css':
cdn = 'http://j2.mycdn.com/mywebsite/'
break;
}
gulp.task('default', =>
gulp.src('src/**/*.html')
.pipe(urlPrefixer.html({prefix: pathToCdn}))
.pipe(gulp.dest('dist'))
);
Type: string
Default: __uri
set placeholder function name.
before
location.href = __uri('/mywebsite/service/index.html')
after (assume you config.prefix option is http://youwebsite.com/
)
location.href = 'http://youwebsite.com/mywebsite/service/index.html'
prefix local urls of html like files
gulp.src('src/**/*.{html,tmpl}')
.pipe(urlPrefixer.html({
prefix: 'http://yourcdn.com/myapp/',
tags: ['script', 'link', 'img']
}))
.pipe(gulp.dest('dist'))
prefix local urls of css like files
gulp.src('src/**/*.{css,less}')
.pipe(urlPrefixer.css({
prefix: 'http://yourcdn.com/myapp/'
}))
.pipe(gulp.dest('dist'))
prefix local urls of js like files
gulp.src('src/**/*.{js,html}')
.pipe(urlPrefixer.js({
prefix: 'http://yourcdn.com/myapp/',
placeholderFuncName: '__prefix'
}))
.pipe(gulp.dest('dist'))
MIT © Louie Lang