initial changes for web packaging
This commit is contained in:
parent
f26e9dcf89
commit
e77b718dd2
4 changed files with 37 additions and 29 deletions
|
@ -13,8 +13,8 @@ pr:
|
||||||
- '*'
|
- '*'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- job: main_build
|
- job: build
|
||||||
displayName: 'Main Build'
|
displayName: 'Build'
|
||||||
|
|
||||||
dependsOn: lint
|
dependsOn: lint
|
||||||
condition: succeeded()
|
condition: succeeded()
|
||||||
|
@ -22,6 +22,14 @@ jobs:
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'ubuntu-latest'
|
vmImage: 'ubuntu-latest'
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
bundle:
|
||||||
|
BuildConfiguration: Bundle
|
||||||
|
standalone:
|
||||||
|
BuildConfiguration: Standalone
|
||||||
|
maxParallel: 2
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: NodeTool@0
|
- task: NodeTool@0
|
||||||
displayName: 'Install Node'
|
displayName: 'Install Node'
|
||||||
|
@ -65,6 +73,5 @@ jobs:
|
||||||
- script: 'yarn run lint'
|
- script: 'yarn run lint'
|
||||||
displayName: 'Run ESLint'
|
displayName: 'Run ESLint'
|
||||||
|
|
||||||
- script: |
|
- script: 'yarn run stylelint'
|
||||||
yarn run stylelint
|
displayName: 'Run Stylelint'
|
||||||
displayName: 'Run stylelint'
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
env:
|
env:
|
||||||
es6: false
|
es6: true
|
||||||
browser: true
|
browser: true
|
||||||
amd: true
|
amd: true
|
||||||
|
|
||||||
|
|
42
gulpfile.js
42
gulpfile.js
|
@ -10,11 +10,11 @@ const htmlmin = require('gulp-htmlmin');
|
||||||
const imagemin = require('gulp-imagemin');
|
const imagemin = require('gulp-imagemin');
|
||||||
const sourcemaps = require('gulp-sourcemaps');
|
const sourcemaps = require('gulp-sourcemaps');
|
||||||
const mode = require('gulp-mode')({
|
const mode = require('gulp-mode')({
|
||||||
modes: ["production", "development"],
|
modes: ["development", "bundle", "standalone"],
|
||||||
default: "development",
|
default: "development",
|
||||||
verbose: false
|
verbose: false
|
||||||
});
|
});
|
||||||
const webpack_stream = require('webpack-stream');
|
const stream = require('webpack-stream');
|
||||||
const inject = require('gulp-inject');
|
const inject = require('gulp-inject');
|
||||||
const postcss = require('gulp-postcss');
|
const postcss = require('gulp-postcss');
|
||||||
const sass = require('gulp-sass');
|
const sass = require('gulp-sass');
|
||||||
|
@ -22,10 +22,10 @@ const sass = require('gulp-sass');
|
||||||
sass.compiler = require('node-sass')
|
sass.compiler = require('node-sass')
|
||||||
|
|
||||||
|
|
||||||
if (mode.production()) {
|
if (mode.bundle() || mode.standalone()) {
|
||||||
var webpack_config = require('./webpack.prod.js');
|
var config = require('./webpack.prod.js');
|
||||||
} else {
|
} else {
|
||||||
var webpack_config = require('./webpack.dev.js');
|
var config = require('./webpack.dev.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
function serve() {
|
function serve() {
|
||||||
|
@ -43,23 +43,22 @@ function serve() {
|
||||||
watch(['src/**/*.png', 'src/**/*.jpg', 'src/**/*.gif', 'src/**/*.svg'], images);
|
watch(['src/**/*.png', 'src/**/*.jpg', 'src/**/*.gif', 'src/**/*.svg'], images);
|
||||||
watch(['src/**/*.json', 'src/**/*.ico'], copy);
|
watch(['src/**/*.json', 'src/**/*.ico'], copy);
|
||||||
watch('src/index.html', injectBundle);
|
watch('src/index.html', injectBundle);
|
||||||
watch(['src/standalone.js', 'src/scripts/apploader.js'], setStandalone);
|
watch(['src/standalone.js', 'src/scripts/apploader.js'], standalone);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setStandalone() {
|
function standalone() {
|
||||||
return src(['src/standalone.js', 'src/scripts/apploader.js'], {base: './src/'})
|
return src(['src/standalone.js', 'src/scripts/apploader.js'], { base: './src/' })
|
||||||
.pipe(concat('scripts/apploader.js'))
|
.pipe(concat('scripts/apploader.js'))
|
||||||
.pipe(dest('dist/'));
|
.pipe(dest('dist/'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clean assets
|
|
||||||
function clean() {
|
function clean() {
|
||||||
return del(['dist/']);
|
return del(['dist/']);
|
||||||
}
|
}
|
||||||
|
|
||||||
function javascript() {
|
function javascript() {
|
||||||
return src(['src/**/*.js', '!src/bundle.js'], {base: './src/'})
|
return src(['src/**/*.js', '!src/bundle.js'], { base: './src/' })
|
||||||
.pipe(mode.development(sourcemaps.init({loadMaps: true})))
|
.pipe(mode.development(sourcemaps.init({ loadMaps: true })))
|
||||||
.pipe(babel({
|
.pipe(babel({
|
||||||
presets: [
|
presets: [
|
||||||
['@babel/preset-env']
|
['@babel/preset-env']
|
||||||
|
@ -75,14 +74,14 @@ function javascript() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function webpack() {
|
function webpack() {
|
||||||
return webpack_stream(webpack_config)
|
return stream(config)
|
||||||
.pipe(dest('dist/'))
|
.pipe(dest('dist/'))
|
||||||
.pipe(browserSync.stream());
|
.pipe(browserSync.stream());
|
||||||
}
|
}
|
||||||
|
|
||||||
function css() {
|
function css() {
|
||||||
return src(['src/**/*.css', 'src/**/*.scss'], {base: './src/'})
|
return src(['src/**/*.css', 'src/**/*.scss'], { base: './src/' })
|
||||||
.pipe(mode.development(sourcemaps.init({loadMaps: true})))
|
.pipe(mode.development(sourcemaps.init({ loadMaps: true })))
|
||||||
.pipe(sass().on('error', sass.logError))
|
.pipe(sass().on('error', sass.logError))
|
||||||
.pipe(postcss())
|
.pipe(postcss())
|
||||||
.pipe(mode.development(sourcemaps.write('.')))
|
.pipe(mode.development(sourcemaps.write('.')))
|
||||||
|
@ -91,33 +90,34 @@ function css() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function html() {
|
function html() {
|
||||||
return src(['src/**/*.html', '!src/index.html'], {base: './src/'})
|
return src(['src/**/*.html', '!src/index.html'], { base: './src/' })
|
||||||
.pipe(mode.production(htmlmin({ collapseWhitespace: true })))
|
.pipe(mode.bundle(htmlmin({ collapseWhitespace: true })))
|
||||||
|
.pipe(mode.standalone(htmlmin({ collapseWhitespace: true })))
|
||||||
.pipe(dest('dist/'))
|
.pipe(dest('dist/'))
|
||||||
.pipe(browserSync.stream());
|
.pipe(browserSync.stream());
|
||||||
}
|
}
|
||||||
|
|
||||||
function images() {
|
function images() {
|
||||||
return src(['src/**/*.png', 'src/**/*.jpg', 'src/**/*.gif', 'src/**/*.svg'], {base: './src/'})
|
return src(['src/**/*.png', 'src/**/*.jpg', 'src/**/*.gif', 'src/**/*.svg'], { base: './src/' })
|
||||||
.pipe(imagemin())
|
.pipe(imagemin())
|
||||||
.pipe(dest('dist/'))
|
.pipe(dest('dist/'))
|
||||||
.pipe(browserSync.stream());
|
.pipe(browserSync.stream());
|
||||||
}
|
}
|
||||||
|
|
||||||
function copy() {
|
function copy() {
|
||||||
return src(['src/**/*.json', 'src/**/*.ico'], {base: './src/'})
|
return src(['src/**/*.json', 'src/**/*.ico'], { base: './src/' })
|
||||||
.pipe(dest('dist/'))
|
.pipe(dest('dist/'))
|
||||||
.pipe(browserSync.stream());
|
.pipe(browserSync.stream());
|
||||||
}
|
}
|
||||||
|
|
||||||
function injectBundle() {
|
function injectBundle() {
|
||||||
return src('src/index.html', {base: './src/'})
|
return src('src/index.html', { base: './src/' })
|
||||||
.pipe(inject(
|
.pipe(inject(
|
||||||
src(['src/scripts/apploader.js'], {read: false}, {base: './src/'}), {relative: true}
|
src(['src/scripts/apploader.js'], { read: false }, { base: './src/' }), { relative: true }
|
||||||
))
|
))
|
||||||
.pipe(dest('dist/'))
|
.pipe(dest('dist/'))
|
||||||
.pipe(browserSync.stream());
|
.pipe(browserSync.stream());
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.default = series(clean, parallel(javascript, webpack, css, html, images, copy), injectBundle)
|
exports.default = series(clean, parallel(javascript, webpack, css, html, images, copy), injectBundle)
|
||||||
exports.serve = series(exports.default, setStandalone, serve)
|
exports.serve = series(exports.default, standalone, serve)
|
||||||
|
|
|
@ -90,8 +90,9 @@
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"serve": "gulp serve",
|
"serve": "gulp serve",
|
||||||
"build": "gulp --production",
|
"build": "gulp --bundle",
|
||||||
"build dev": "gulp",
|
"build standalone": "gulp --standalone",
|
||||||
|
"build development": "gulp",
|
||||||
"lint": "eslint \"src\"",
|
"lint": "eslint \"src\"",
|
||||||
"stylelint": "stylelint \"src/**/*.css\""
|
"stylelint": "stylelint \"src/**/*.css\""
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue