Compare commits
7 Commits
d7a42d03f7
...
7548ddcbc5
Author | SHA1 | Date |
---|---|---|
|
7548ddcbc5 | |
|
fc0b06a1be | |
|
ac951aba32 | |
|
fb4e3c0e46 | |
|
e9f19fbddf | |
|
d0042f196e | |
|
c32db349d9 |
10
.babelrc
10
.babelrc
|
@ -2,20 +2,14 @@
|
||||||
"presets": [
|
"presets": [
|
||||||
["babel-preset-env", {
|
["babel-preset-env", {
|
||||||
"targets": {
|
"targets": {
|
||||||
"browsers": [
|
"node": true,
|
||||||
"> 1%",
|
|
||||||
"last 4 versions",
|
|
||||||
"Firefox ESR",
|
|
||||||
"ios >= 8"
|
|
||||||
],
|
|
||||||
"uglify": false
|
"uglify": false
|
||||||
},
|
},
|
||||||
"spec": true,
|
"spec": true,
|
||||||
"debug": true
|
"debug": false
|
||||||
}]
|
}]
|
||||||
],
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"babel-plugin-transform-react-constant-elements",
|
|
||||||
"babel-plugin-transform-class-properties",
|
"babel-plugin-transform-class-properties",
|
||||||
"babel-plugin-syntax-dynamic-import"
|
"babel-plugin-syntax-dynamic-import"
|
||||||
]
|
]
|
||||||
|
|
|
@ -22,11 +22,15 @@ build/Release
|
||||||
# Dependency directory
|
# Dependency directory
|
||||||
# Deployed apps should consider commenting this line out:
|
# Deployed apps should consider commenting this line out:
|
||||||
# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
|
# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
|
||||||
node_modules
|
node_modules/**
|
||||||
|
!node_modules/.gitkeep
|
||||||
|
|
||||||
# Webpack output
|
# Webpack output
|
||||||
/dist
|
/dist
|
||||||
|
|
||||||
|
# Intermediate build files (cache, etc.)
|
||||||
|
/build
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
Dockerfile
|
Dockerfile
|
||||||
|
|
|
@ -22,7 +22,11 @@ build/Release
|
||||||
# Dependency directory
|
# Dependency directory
|
||||||
# Deployed apps should consider commenting this line out:
|
# Deployed apps should consider commenting this line out:
|
||||||
# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
|
# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
|
||||||
node_modules
|
node_modules/**
|
||||||
|
!node_modules/.gitkeep
|
||||||
|
|
||||||
# Webpack output
|
# Webpack output
|
||||||
/dist
|
/dist
|
||||||
|
|
||||||
|
# Intermediate build files (cache, etc.)
|
||||||
|
/build
|
||||||
|
|
|
@ -20,10 +20,13 @@ coverage
|
||||||
build/Release
|
build/Release
|
||||||
|
|
||||||
# Dependency directory
|
# Dependency directory
|
||||||
# Deployed apps should consider commenting these line out:
|
# Deployed apps should consider commenting this line out:
|
||||||
# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
|
# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
|
||||||
node_modules/**
|
node_modules/**
|
||||||
!node_modules/.gitkeep
|
!node_modules/.gitkeep
|
||||||
|
|
||||||
# Webpack output
|
# Webpack output
|
||||||
/dist
|
/dist
|
||||||
|
|
||||||
|
# Intermediate build files (cache, etc.)
|
||||||
|
/build
|
||||||
|
|
|
@ -10416,6 +10416,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"preact": {
|
||||||
|
"version": "8.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/preact/-/preact-8.2.4.tgz",
|
||||||
|
"integrity": "sha1-FE6lDLV7dlmsX2MRkblBi97H7Qo=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"preact-compat": {
|
"preact-compat": {
|
||||||
"version": "3.17.0",
|
"version": "3.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/preact-compat/-/preact-compat-3.17.0.tgz",
|
"resolved": "https://registry.npmjs.org/preact-compat/-/preact-compat-3.17.0.tgz",
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
"build": "webpack",
|
"build": "webpack",
|
||||||
"build:production": "npm run -s build -- --env production",
|
"build:production": "npm run -s build -- --env production",
|
||||||
"build:development": "npm run -s build -- --env development",
|
"build:development": "npm run -s build -- --env development",
|
||||||
"clean": "nwb clean-app",
|
"clean": "rimraf build dist",
|
||||||
"docker-compose": "docker-compose -f docker-compose.local.yml",
|
"docker-compose": "docker-compose -f docker-compose.local.yml",
|
||||||
"docker:down:clean": "npm run -s docker:down -- --rmi all -v",
|
"docker:down:clean": "npm run -s docker:down -- --rmi all -v",
|
||||||
"docker:down": "npm run -s docker-compose -- down",
|
"docker:down": "npm run -s docker-compose -- down",
|
||||||
|
@ -80,6 +80,7 @@
|
||||||
"react-hot-loader": "^3.0.0-beta.7",
|
"react-hot-loader": "^3.0.0-beta.7",
|
||||||
"react-router": "^4.2.0",
|
"react-router": "^4.2.0",
|
||||||
"resolve-url-loader": "^2.1.0",
|
"resolve-url-loader": "^2.1.0",
|
||||||
|
"rimraf": "^2.6.1",
|
||||||
"sass-loader": "^6.0.6",
|
"sass-loader": "^6.0.6",
|
||||||
"slash": "^1.0.0",
|
"slash": "^1.0.0",
|
||||||
"style-loader": "^0.18.2",
|
"style-loader": "^0.18.2",
|
||||||
|
|
32
src/.babelrc
32
src/.babelrc
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"presets": [
|
|
||||||
["babel-preset-env", {
|
|
||||||
"targets": {
|
|
||||||
"browsers": [
|
|
||||||
"> 1%",
|
|
||||||
"last 4 versions",
|
|
||||||
"Firefox ESR",
|
|
||||||
"ios >= 8"
|
|
||||||
],
|
|
||||||
"uglify": false
|
|
||||||
},
|
|
||||||
/*"spec": true,*/
|
|
||||||
"debug": true,
|
|
||||||
"modules": false
|
|
||||||
}],
|
|
||||||
"babel-preset-react"
|
|
||||||
],
|
|
||||||
"plugins": [
|
|
||||||
"react-hot-loader/babel",
|
|
||||||
"babel-plugin-transform-react-constant-elements",
|
|
||||||
/*"babel-plugin-transform-react-remove-prop-types",*/
|
|
||||||
/*"babel-plugin-transform-decorators-legacy",*/
|
|
||||||
"babel-plugin-transform-class-properties",
|
|
||||||
["babel-plugin-transform-runtime", {
|
|
||||||
"helpers": false,
|
|
||||||
"polyfill": false,
|
|
||||||
"regenerator": true
|
|
||||||
}],
|
|
||||||
"babel-plugin-syntax-dynamic-import"
|
|
||||||
]
|
|
||||||
}
|
|
15
src/App.jsx
15
src/App.jsx
|
@ -45,6 +45,7 @@ class App extends React.Component {
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
clearInterval(this.interval);
|
clearInterval(this.interval);
|
||||||
|
this.interval = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
calculateUpcomingDate() {
|
calculateUpcomingDate() {
|
||||||
|
@ -56,7 +57,19 @@ class App extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
updateUpcomingDate() {
|
updateUpcomingDate() {
|
||||||
this.setState({ nextUpcomingDate: this.calculateUpcomingDate() });
|
const { getNow } = this.props;
|
||||||
|
|
||||||
|
const nextUpcomingDate = this.calculateUpcomingDate();
|
||||||
|
|
||||||
|
if (this.interval) {
|
||||||
|
const interval = moment.duration(nextUpcomingDate.diff(getNow()))
|
||||||
|
.asMilliseconds();
|
||||||
|
|
||||||
|
clearInterval(this.interval);
|
||||||
|
this.interval = setInterval(this.updateUpcomingDate.bind(this), interval);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setState({ nextUpcomingDate });
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|
|
@ -28,6 +28,13 @@ const {
|
||||||
|
|
||||||
const locales = ['en'];
|
const locales = ['en'];
|
||||||
|
|
||||||
|
const autoprefixerTargets = [
|
||||||
|
'> 1%',
|
||||||
|
'last 4 versions',
|
||||||
|
'Firefox ESR',
|
||||||
|
'ios >= 8',
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plugin for HtmlPlugin which inlines content for an extracted Webpack manifest
|
* Plugin for HtmlPlugin which inlines content for an extracted Webpack manifest
|
||||||
* into the HTML in a <script> tag before other emitted asssets are injected by
|
* into the HTML in a <script> tag before other emitted asssets are injected by
|
||||||
|
@ -153,7 +160,7 @@ export default (options) => {
|
||||||
ident: 'postcss',
|
ident: 'postcss',
|
||||||
plugins: [
|
plugins: [
|
||||||
autoprefixer({
|
autoprefixer({
|
||||||
browsers: '> 1%, last 4 versions, Firefox ESR, ios >= 8',
|
browsers: autoprefixerTargets,
|
||||||
grid: false,
|
grid: false,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
@ -190,7 +197,7 @@ export default (options) => {
|
||||||
return cssLoaders;
|
return cssLoaders;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
const config = {
|
||||||
devServer: {
|
devServer: {
|
||||||
// inline: true,
|
// inline: true,
|
||||||
headers: {
|
headers: {
|
||||||
|
@ -201,7 +208,7 @@ export default (options) => {
|
||||||
noInfo: true,
|
noInfo: true,
|
||||||
overlay: true,
|
overlay: true,
|
||||||
publicPath: '',
|
publicPath: '',
|
||||||
quiet: true,
|
quiet: false,
|
||||||
watchOptions: {
|
watchOptions: {
|
||||||
ignored: /node_modules/,
|
ignored: /node_modules/,
|
||||||
},
|
},
|
||||||
|
@ -214,11 +221,34 @@ export default (options) => {
|
||||||
exclude: /node_modules/,
|
exclude: /node_modules/,
|
||||||
options: {
|
options: {
|
||||||
// Look for babel configuration in project directory
|
// Look for babel configuration in project directory
|
||||||
babelrc: true,
|
babelrc: false,
|
||||||
// Cache transformations to the filesystem (in default temp dir)
|
// Cache transformations to the filesystem (in default temp dir)
|
||||||
cacheDirectory: true,
|
cacheDirectory: true,
|
||||||
// Skip module transpiling as Webpack 2+ support it ootb
|
|
||||||
forceEnv: 'browser',
|
forceEnv: 'browser',
|
||||||
|
|
||||||
|
presets: [
|
||||||
|
['babel-preset-env', {
|
||||||
|
targets: {
|
||||||
|
browsers: autoprefixerTargets,
|
||||||
|
uglify: false,
|
||||||
|
},
|
||||||
|
// spec: true,
|
||||||
|
debug: development,
|
||||||
|
modules: false, // do not transpile modules, webpack 2+ does that
|
||||||
|
}],
|
||||||
|
'babel-preset-react',
|
||||||
|
],
|
||||||
|
plugins: [
|
||||||
|
'babel-plugin-transform-react-constant-elements',
|
||||||
|
'babel-plugin-transform-class-properties',
|
||||||
|
['babel-plugin-transform-runtime', {
|
||||||
|
helpers: false,
|
||||||
|
polyfill: false,
|
||||||
|
regenerator: true,
|
||||||
|
}],
|
||||||
|
'babel-plugin-syntax-dynamic-import',
|
||||||
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
...[
|
...[
|
||||||
|
@ -347,7 +377,7 @@ export default (options) => {
|
||||||
showErrors: true,
|
showErrors: true,
|
||||||
chunks: 'all',
|
chunks: 'all',
|
||||||
excludeChunks: [],
|
excludeChunks: [],
|
||||||
title: 'Webpack App',
|
title: 'VIzon Countdown',
|
||||||
xhtml: false,
|
xhtml: false,
|
||||||
chunksSortMode: 'dependency',
|
chunksSortMode: 'dependency',
|
||||||
}),
|
}),
|
||||||
|
@ -360,11 +390,6 @@ export default (options) => {
|
||||||
'.js', '.json', '.jsx',
|
'.js', '.json', '.jsx',
|
||||||
],
|
],
|
||||||
alias: {
|
alias: {
|
||||||
// Use preact instead of react
|
|
||||||
/* react: 'preact-compat\\dist\\preact-compat',
|
|
||||||
'react-dom': 'preact-compat\\dist\\preact-compat',
|
|
||||||
'create-react-class': 'preact-compat/lib/create-react-class', */
|
|
||||||
|
|
||||||
'moment-timezone': 'moment-timezone/builds/moment-timezone-with-data-2012-2022.js',
|
'moment-timezone': 'moment-timezone/builds/moment-timezone-with-data-2012-2022.js',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -383,4 +408,15 @@ export default (options) => {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (!server) {
|
||||||
|
// Use preact instead of react (only on static build)
|
||||||
|
Object.assign(config.resolve.alias, {
|
||||||
|
react: !server ? 'preact-compat\\dist\\preact-compat' : undefined,
|
||||||
|
'react-dom': !server ? 'preact-compat\\dist\\preact-compat' : undefined,
|
||||||
|
'create-react-class': !server ? 'preact-compat/lib/create-react-class' : undefined,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return config;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue