1
0
mirror of https://github.com/chinchang/web-maker.git synced 2025-04-30 07:27:58 +02:00

setup build process for monaco files. public path is set to relative to support async chunk loading in app and extension both

This commit is contained in:
Kushagra Gour 2018-12-09 23:10:14 +05:30
parent bae1983ca5
commit deb03e7c7d
2 changed files with 15 additions and 14 deletions

View File

@ -22,8 +22,8 @@ function minifyJs(fileName) {
).code;
fs.writeFileSync(fileName, minifiedContent);
console.log(
`[${fileName}]: ${content.length / 1024}M -> ${minifiedContent.length /
1024}M`
`[${fileName}]: ${content.length / 1024}K -> ${minifiedContent.length /
1024}K`
);
}
gulp.task('runWebpack', function() {
@ -41,6 +41,9 @@ gulp.task('copyFiles', function() {
gulp.src('src/lib/transpilers/*').pipe(gulp.dest('app/lib/transpilers')),
gulp.src('src/lib/prettier-worker.js').pipe(gulp.dest('app/lib/')),
gulp.src('src/lib/prettier/*').pipe(gulp.dest('app/lib/prettier')),
gulp
.src(['!src/lib/monaco/monaco.bundle.js', 'src/lib/monaco/**/*'])
.pipe(gulp.dest('app/lib/monaco')),
gulp.src('src/lib/screenlog.js').pipe(gulp.dest('app/lib')),
gulp.src('icons/*').pipe(gulp.dest('app/icons')),
gulp.src('src/assets/*').pipe(gulp.dest('app/assets')),
@ -63,6 +66,7 @@ gulp.task('copyFiles', function() {
.src('build/vendor.*.js')
.pipe(rename('vendor.js'))
.pipe(gulp.dest('app')),
gulp.src('build/monaco.*.js').pipe(gulp.dest('app')),
// Following CSS are copied to build/ folder where they'll be referenced by
// useRef plugin to concat into one.
@ -120,8 +124,11 @@ gulp.task('minify', function() {
debug: true
},
details => {
console.log(`${details.name}: ${details.stats.originalSize}`);
console.log(`${details.name}: ${details.stats.minifiedSize}`);
console.log(
`${details.name}: ${details.stats.originalSize} 👉🏼 ${
details.stats.minifiedSize
}`
);
}
)
)
@ -138,7 +145,7 @@ gulp.task('fixIndex', function() {
// vendor.hash.js gets created outside our markers, so remove it
contents = contents.replace(
/\<script src="\/vendor\.[\S\s]*?\<\/script\>/,
/\<script src="[\S\s]*?vendor\.[\S\s]*?\<\/script\>/,
''
);
@ -171,18 +178,12 @@ gulp.task('packageExtension', function() {
child_process.execSync('cp src/options.html extension');
child_process.execSync('cp src/eventPage.js extension');
child_process.execSync('cp src/icon-16.png extension');
child_process.execSync(
'rm -rf extension/service-worker.js extension/partials'
);
child_process.execSync('rm -rf extension/service-worker.js');
return merge(
gulp
.src('build/bundle.*.js')
.pipe(rename('script.js'))
.pipe(gulp.dest('extension')),
gulp
.src('build/vendor.*.js')
.pipe(rename('vendor.js'))
.pipe(gulp.dest('extension')),
gulp
.src('extension/**/*')

View File

@ -1,4 +1,3 @@
import CopyWebpackPlugin from 'copy-webpack-plugin';
var CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');
/**
@ -28,7 +27,8 @@ export default function(config, env, helpers) {
if (env.isProd) {
config.devtool = false; // disable sourcemaps
config.output.publicPath = './';
config.output.chunkFilename = '[name].chunk.js';
config.plugins.push(
new CommonsChunkPlugin({
name: 'vendor',