mirror of
https://github.com/home-assistant/frontend.git
synced 2025-12-24 20:55:49 +00:00
Polymer 3 modulize (#1154)
* Version bump to 20180510.1 * Fix hass util * Fix translations * Bye paper-time-input * Add webpack config * Add webpack to package.json * Fix translation import * Disable web animations polyfill bad import * Disable importHref import * Update webpack config to build authorize.js * Build translations json * Build frontend correctly * Run eslint --fix * Load markdown JS on demand (#1155) * Add HTML imports (#1160) * Fix localize (#1161) * Fix Roboto in build (#1162) * Load web animations polyfill (#1163) * P3: Fix chart js (#1164) * P3: Fix Chart JS * Update timeline package * P3: panel resolver (#1165) * WIP * Initial importing of panels * Fix panel resolver * Fix automation and script editor (#1166) * Expose Polymer and Polymer.Element on window (#1167) * Remove unused import * eslint --fix * Es5 build (#1168) * Build for ES5 * Fix build_frontend * Remove stale comment * Migrate to use paper-material-styles (#1170) * Send parsed date to history/logbook (#1171) * Fork app storage behavior (#1172) * Add paper input with type time (#1173) * Fix authorize * Lint * Sort imports * Lint * Remove eslint-html * Do not lint authorize.html * Fix polymer lint * Try chrome 62 for wct * P3: Add patched iconset (#1175) * Add patched iconset * Lint * Test with latest Chrome again * Use less window.hassUtil * Teporarily use my fecha fork * Import correct intl.messageFormat * Update wct-browser-legacy to 1.0.0 * Include polyfill in right place * Fix IntlMessageFormat * Fix test not having a global scope * Rollup <_< * Fork app-localize-behavior * Disable wct tests * Lint
This commit is contained in:
60
webpack.config.js
Normal file
60
webpack.config.js
Normal file
@@ -0,0 +1,60 @@
|
||||
const path = require('path');
|
||||
|
||||
function createConfig(isProdBuild, latestBuild) {
|
||||
let buildPath = latestBuild ? 'build/webpack/' : 'build-es5/webpack/';
|
||||
|
||||
let publicPath;
|
||||
if (isProdBuild) {
|
||||
publicPath = latestBuild ? '/frontend_latest/' : '/frontend_es5/';
|
||||
} else {
|
||||
publicPath = `/home-assistant-polymer/${buildPath}`;
|
||||
}
|
||||
|
||||
const rules = [];
|
||||
if (!latestBuild) {
|
||||
rules.push({
|
||||
test: /\.js$/,
|
||||
use: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: [
|
||||
['es2015', { modules: false }]
|
||||
],
|
||||
plugins: [
|
||||
// Only support the syntax, Webpack will handle it.
|
||||
"syntax-dynamic-import"
|
||||
],
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const chunkFilename = isProdBuild ?
|
||||
'[name]-[chunkhash].chunk.js' : '[name].chunk.js';
|
||||
|
||||
return {
|
||||
mode: isProdBuild ? 'production' : 'development',
|
||||
entry: {
|
||||
app: './src/home-assistant.js',
|
||||
authorize: './src/auth/ha-authorize.js'
|
||||
},
|
||||
module: {
|
||||
rules
|
||||
},
|
||||
output: {
|
||||
filename: '[name].js',
|
||||
chunkFilename: chunkFilename,
|
||||
path: path.resolve(__dirname, buildPath),
|
||||
publicPath,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const isProdBuild = process.env.NODE_ENV === 'production'
|
||||
const configs = [
|
||||
createConfig(isProdBuild, /* latestBuild */ true),
|
||||
];
|
||||
if (isProdBuild) {
|
||||
configs.push(createConfig(isProdBuild, /* latestBuild */ false));
|
||||
}
|
||||
module.exports = configs;
|
||||
Reference in New Issue
Block a user