webpack-dev-server
This commit is contained in:
parent
51a1a7ed22
commit
1cc2b388a2
|
@ -73,7 +73,8 @@
|
||||||
"precommit-hook": "3.0.0",
|
"precommit-hook": "3.0.0",
|
||||||
"string-replace-loader": "*",
|
"string-replace-loader": "*",
|
||||||
"style-loader": "*",
|
"style-loader": "*",
|
||||||
"webpack": "*"
|
"webpack": "^1.14.0",
|
||||||
|
"webpack-dev-server": "^1.16.2"
|
||||||
},
|
},
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -7,6 +7,14 @@ var process = require('process');
|
||||||
var webpack = require('webpack');
|
var webpack = require('webpack');
|
||||||
|
|
||||||
var aui_css = __dirname + '/node_modules/@atlassian/aui/dist/aui/css/';
|
var aui_css = __dirname + '/node_modules/@atlassian/aui/dist/aui/css/';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The URL of the Jitsi Meet deployment to be proxy to in the context of
|
||||||
|
* development with webpack-dev-server.
|
||||||
|
*/
|
||||||
|
var devServerProxyTarget
|
||||||
|
= process.env.WEBPACK_DEV_SERVER_PROXY_TARGET || 'https://beta.meet.jit.si';
|
||||||
|
|
||||||
var minimize
|
var minimize
|
||||||
= process.argv.indexOf('-p') !== -1
|
= process.argv.indexOf('-p') !== -1
|
||||||
|| process.argv.indexOf('--optimize-minimize') !== -1;
|
|| process.argv.indexOf('--optimize-minimize') !== -1;
|
||||||
|
@ -30,6 +38,17 @@ if (minimize) {
|
||||||
// The base Webpack configuration to bundle the JavaScript artifacts of
|
// The base Webpack configuration to bundle the JavaScript artifacts of
|
||||||
// jitsi-meet such as app.bundle.js and external_api.js.
|
// jitsi-meet such as app.bundle.js and external_api.js.
|
||||||
var config = {
|
var config = {
|
||||||
|
devServer: {
|
||||||
|
https: true,
|
||||||
|
inline: true,
|
||||||
|
proxy: {
|
||||||
|
'/': {
|
||||||
|
bypass: devServerProxyBypass,
|
||||||
|
secure: false,
|
||||||
|
target: devServerProxyTarget
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
devtool: 'source-map',
|
devtool: 'source-map',
|
||||||
module: {
|
module: {
|
||||||
loaders: [ {
|
loaders: [ {
|
||||||
|
@ -107,6 +126,7 @@ var config = {
|
||||||
filename: '[name]' + (minimize ? '.min' : '') + '.js',
|
filename: '[name]' + (minimize ? '.min' : '') + '.js',
|
||||||
libraryTarget: 'umd',
|
libraryTarget: 'umd',
|
||||||
path: __dirname + '/build',
|
path: __dirname + '/build',
|
||||||
|
publicPath: '/libs/',
|
||||||
sourceMapFilename: '[name].' + (minimize ? 'min' : 'js') + '.map'
|
sourceMapFilename: '[name].' + (minimize ? 'min' : 'js') + '.map'
|
||||||
},
|
},
|
||||||
plugins: plugins,
|
plugins: plugins,
|
||||||
|
@ -118,7 +138,7 @@ var config = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = [
|
var configs = [
|
||||||
|
|
||||||
// The Webpack configuration to bundle app.bundle.js (aka APP).
|
// The Webpack configuration to bundle app.bundle.js (aka APP).
|
||||||
Object.assign({}, config, {
|
Object.assign({}, config, {
|
||||||
|
@ -141,3 +161,45 @@ module.exports = [
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
module.exports = configs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines whether a specific (HTTP) request is to bypass the proxy of
|
||||||
|
* webpack-dev-server (i.e. is to be handled by the proxy target) and, if not,
|
||||||
|
* which local file is to be served in response to the request.
|
||||||
|
*
|
||||||
|
* @param {Object} request - The (HTTP) request received by the proxy.
|
||||||
|
* @returns {string|undefined} If the request is to be served by the proxy
|
||||||
|
* target, undefined; otherwise, the path to the local file to be served.
|
||||||
|
*/
|
||||||
|
function devServerProxyBypass(request) {
|
||||||
|
var path = request.path;
|
||||||
|
|
||||||
|
// Use local files from the css and libs directories.
|
||||||
|
if (path.startsWith('/css/')) {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
if (configs.some(function (c) {
|
||||||
|
if (path.startsWith(c.output.publicPath)) {
|
||||||
|
if (!minimize) {
|
||||||
|
// Since webpack-dev-server is serving non-minimized
|
||||||
|
// artifacts, serve them even if the minimized ones are
|
||||||
|
// requested.
|
||||||
|
Object.keys(c.entry).some(function (e) {
|
||||||
|
var name = e + '.min.js';
|
||||||
|
|
||||||
|
if (path.indexOf(name) !== -1) {
|
||||||
|
path = path.replace(name, e + '.js');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
})) {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue