Update: pull merge

This commit is contained in:
jas0ncn 2018-09-24 23:30:15 +08:00
parent 1de3969391
commit 978c61baa5
6 changed files with 364 additions and 24 deletions

View File

@ -3,15 +3,14 @@ const { resolve } = require('path')
const { CheckerPlugin, TsConfigPathsPlugin } = require('awesome-typescript-loader')
const StyleLintPlugin = require('stylelint-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const OfflinePlugin = require('offline-plugin')
module.exports = {
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'],
plugins: [
new TsConfigPathsPlugin()
],
plugins: [new TsConfigPathsPlugin()],
alias: {
'@styles': resolve(__dirname, 'src/styles/')
'@styles': resolve(__dirname, 'src/styles/'),
},
},
context: resolve(__dirname, '../../src'),
@ -32,11 +31,7 @@ module.exports = {
},
{
test: /\.scss$/,
loaders: [
'style-loader',
{ loader: 'css-loader', options: { importLoaders: 1 } },
'sass-loader',
],
loaders: ['style-loader', { loader: 'css-loader', options: { importLoaders: 1 } }, 'sass-loader'],
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
@ -50,10 +45,19 @@ module.exports = {
plugins: [
new CheckerPlugin(),
new StyleLintPlugin(),
new HtmlWebpackPlugin({ template: 'index.html.ejs', }),
new HtmlWebpackPlugin({ template: 'index.html.ejs' }),
new OfflinePlugin({
ServiceWorker: {
events: true,
},
externals: [
'https://cdnjs.cloudflare.com/ajax/libs/react/16.4.2/umd/react.production.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.4.2/umd/react-dom.production.min.js',
],
}),
],
externals: {
'react': 'React',
react: 'React',
'react-dom': 'ReactDOM',
},
performance: {

View File

@ -1,15 +1,17 @@
// development config
const merge = require('webpack-merge')
const webpack = require('webpack')
const { resolve } = require('path')
const ManifestPlugin = require('webpack-pwa-manifest')
const commonConfig = require('./common')
module.exports = merge(commonConfig, {
mode: 'development',
entry: [
'react-hot-loader/patch', // activate HMR for React
'webpack-dev-server/client?http://localhost:8080',// bundle the client for webpack-dev-server and connect to the provided endpoint
'webpack-dev-server/client?http://localhost:8080', // bundle the client for webpack-dev-server and connect to the provided endpoint
'webpack/hot/only-dev-server', // bundle the client for hot reloading, only- means to only hot reload for successful updates
'./index.ts' // the entry point of our app
'./index.ts', // the entry point of our app
],
devServer: {
hot: true, // enable HMR on the server
@ -19,5 +21,19 @@ module.exports = merge(commonConfig, {
plugins: [
new webpack.HotModuleReplacementPlugin(), // enable HMR globally
new webpack.NamedModulesPlugin(), // prints more readable module names in the browser console on HMR updates
new ManifestPlugin({
name: 'Clash Development',
background_color: '#FFFFFF',
crossorigin: 'anonymous',
inject: true,
fingerprints: false,
icons: [
{
src: resolve('src/assets/logo.png'),
sizes: [96, 128, 192, 256],
destination: 'img/icons',
},
],
}),
],
})

View File

@ -1,6 +1,7 @@
// production config
const merge = require('webpack-merge')
const { resolve } = require('path')
const ManifestPlugin = require('webpack-pwa-manifest')
const commonConfig = require('./common')
@ -13,5 +14,20 @@ module.exports = merge(commonConfig, {
publicPath: '/',
},
devtool: 'source-map',
plugins: [],
plugins: [
new ManifestPlugin({
name: 'Clash',
background_color: '#FFFFFF',
crossorigin: 'anonymous',
inject: true,
fingerprints: false,
icons: [
{
src: resolve('src/assets/logo.png'),
sizes: [96, 128, 192, 256],
destination: 'img/icons',
},
],
}),
],
})

301
package-lock.json generated
View File

@ -1636,6 +1636,12 @@
"integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
"dev": true
},
"bignumber.js": {
"version": "2.4.0",
"resolved": "http://registry.npm.taobao.org/bignumber.js/download/bignumber.js-2.4.0.tgz",
"integrity": "sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg=",
"dev": true
},
"bin-build": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz",
@ -1757,6 +1763,12 @@
"integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==",
"dev": true
},
"bmp-js": {
"version": "0.0.3",
"resolved": "http://registry.npm.taobao.org/bmp-js/download/bmp-js-0.0.3.tgz",
"integrity": "sha1-ZBE+nHzxICs3btYHvzBibr5XsYo=",
"dev": true
},
"bn.js": {
"version": "4.11.8",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
@ -1847,7 +1859,7 @@
},
"browserify-aes": {
"version": "1.2.0",
"resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
"dev": true,
"requires": {
@ -1884,7 +1896,7 @@
},
"browserify-rsa": {
"version": "4.0.1",
"resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
"resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
"integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
"dev": true,
"requires": {
@ -1960,6 +1972,12 @@
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
"dev": true
},
"buffer-equal": {
"version": "0.0.1",
"resolved": "http://registry.npm.taobao.org/buffer-equal/download/buffer-equal-0.0.1.tgz",
"integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=",
"dev": true
},
"buffer-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
@ -2605,7 +2623,7 @@
},
"create-hash": {
"version": "1.2.0",
"resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
"dev": true,
"requires": {
@ -2618,7 +2636,7 @@
},
"create-hmac": {
"version": "1.1.7",
"resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
"dev": true,
"requires": {
@ -2660,6 +2678,12 @@
"randomfill": "^1.0.3"
}
},
"css-color-names": {
"version": "0.0.4",
"resolved": "http://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz",
"integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
"dev": true
},
"css-loader": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.0.tgz",
@ -3247,7 +3271,7 @@
},
"diffie-hellman": {
"version": "5.0.3",
"resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
"resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
"integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
"dev": true,
"requires": {
@ -3483,6 +3507,12 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
"dev": true
},
"ejs": {
"version": "2.6.1",
"resolved": "http://registry.npm.taobao.org/ejs/download/ejs-2.6.1.tgz",
"integrity": "sha1-SY7A1JVlWrxvI81hho2SZGQHGqA=",
"dev": true
},
"electron-to-chromium": {
"version": "1.3.62",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz",
@ -3605,6 +3635,12 @@
"es6-symbol": "^3.1.1"
}
},
"es6-promise": {
"version": "3.3.1",
"resolved": "http://registry.npm.taobao.org/es6-promise/download/es6-promise-3.3.1.tgz",
"integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=",
"dev": true
},
"es6-symbol": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
@ -3756,6 +3792,12 @@
"meow": "^3.1.0"
}
},
"exif-parser": {
"version": "0.1.12",
"resolved": "http://registry.npm.taobao.org/exif-parser/download/exif-parser-0.1.12.tgz",
"integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=",
"dev": true
},
"expand-brackets": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
@ -4258,6 +4300,15 @@
}
}
},
"for-each": {
"version": "0.3.3",
"resolved": "http://registry.npm.taobao.org/for-each/download/for-each-0.3.3.tgz",
"integrity": "sha1-abRH6IoKXTLD5whPPxcQA0shN24=",
"dev": true,
"requires": {
"is-callable": "^1.1.3"
}
},
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@ -6402,6 +6453,12 @@
"number-is-nan": "^1.0.0"
}
},
"is-function": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/is-function/download/is-function-1.0.1.tgz",
"integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=",
"dev": true
},
"is-gif": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz",
@ -6679,6 +6736,44 @@
"is-object": "^1.0.1"
}
},
"jimp": {
"version": "0.2.28",
"resolved": "http://registry.npm.taobao.org/jimp/download/jimp-0.2.28.tgz",
"integrity": "sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=",
"dev": true,
"requires": {
"bignumber.js": "^2.1.0",
"bmp-js": "0.0.3",
"es6-promise": "^3.0.2",
"exif-parser": "^0.1.9",
"file-type": "^3.1.0",
"jpeg-js": "^0.2.0",
"load-bmfont": "^1.2.3",
"mime": "^1.3.4",
"mkdirp": "0.5.1",
"pixelmatch": "^4.0.0",
"pngjs": "^3.0.0",
"read-chunk": "^1.0.1",
"request": "^2.65.0",
"stream-to-buffer": "^0.1.0",
"tinycolor2": "^1.1.2",
"url-regex": "^3.0.0"
},
"dependencies": {
"file-type": {
"version": "3.9.0",
"resolved": "http://registry.npm.taobao.org/file-type/download/file-type-3.9.0.tgz",
"integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
"dev": true
}
}
},
"jpeg-js": {
"version": "0.2.0",
"resolved": "http://registry.npm.taobao.org/jpeg-js/download/jpeg-js-0.2.0.tgz",
"integrity": "sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII=",
"dev": true
},
"js-base64": {
"version": "2.4.9",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
@ -6818,6 +6913,22 @@
"invert-kv": "^1.0.0"
}
},
"load-bmfont": {
"version": "1.4.0",
"resolved": "http://registry.npm.taobao.org/load-bmfont/download/load-bmfont-1.4.0.tgz",
"integrity": "sha1-dfFwcLFKjHhf5/W+4ub9T5gJO2s=",
"dev": true,
"requires": {
"buffer-equal": "0.0.1",
"mime": "^1.3.4",
"parse-bmfont-ascii": "^1.0.3",
"parse-bmfont-binary": "^1.0.5",
"parse-bmfont-xml": "^1.1.4",
"phin": "^2.9.1",
"xhr": "^2.0.1",
"xtend": "^4.0.0"
}
},
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@ -7716,7 +7827,7 @@
},
"buffer": {
"version": "4.9.1",
"resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
"integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
"dev": true,
"requires": {
@ -8018,6 +8129,45 @@
"integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
"dev": true
},
"offline-plugin": {
"version": "5.0.5",
"resolved": "http://registry.npm.taobao.org/offline-plugin/download/offline-plugin-5.0.5.tgz",
"integrity": "sha1-6bFsVp0ZiZr5ySP1vCYHBVeP/ro=",
"dev": true,
"requires": {
"deep-extend": "^0.5.1",
"ejs": "^2.3.4",
"loader-utils": "0.2.x",
"minimatch": "^3.0.3",
"slash": "^1.0.0"
},
"dependencies": {
"deep-extend": {
"version": "0.5.1",
"resolved": "http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.5.1.tgz",
"integrity": "sha1-uJSp3ZDTAj+/HFWjlPuFjrIGbx8=",
"dev": true
},
"loader-utils": {
"version": "0.2.17",
"resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz",
"integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
"dev": true,
"requires": {
"big.js": "^3.1.3",
"emojis-list": "^2.0.0",
"json5": "^0.5.0",
"object-assign": "^4.0.1"
}
},
"slash": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz",
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
"dev": true
}
}
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@ -8257,7 +8407,7 @@
},
"parse-asn1": {
"version": "5.1.1",
"resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
"integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
"dev": true,
"requires": {
@ -8268,6 +8418,28 @@
"pbkdf2": "^3.0.3"
}
},
"parse-bmfont-ascii": {
"version": "1.0.6",
"resolved": "http://registry.npm.taobao.org/parse-bmfont-ascii/download/parse-bmfont-ascii-1.0.6.tgz",
"integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=",
"dev": true
},
"parse-bmfont-binary": {
"version": "1.0.6",
"resolved": "http://registry.npm.taobao.org/parse-bmfont-binary/download/parse-bmfont-binary-1.0.6.tgz",
"integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=",
"dev": true
},
"parse-bmfont-xml": {
"version": "1.1.4",
"resolved": "http://registry.npm.taobao.org/parse-bmfont-xml/download/parse-bmfont-xml-1.1.4.tgz",
"integrity": "sha1-AVMZeX4+EvnnOcTVE4cs0vo184k=",
"dev": true,
"requires": {
"xml-parse-from-string": "^1.0.0",
"xml2js": "^0.4.5"
}
},
"parse-entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz",
@ -8311,6 +8483,16 @@
}
}
},
"parse-headers": {
"version": "2.0.1",
"resolved": "http://registry.npm.taobao.org/parse-headers/download/parse-headers-2.0.1.tgz",
"integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=",
"dev": true,
"requires": {
"for-each": "^0.3.2",
"trim": "0.0.1"
}
},
"parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
@ -8419,6 +8601,12 @@
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"phin": {
"version": "2.9.2",
"resolved": "http://registry.npm.taobao.org/phin/download/phin-2.9.2.tgz",
"integrity": "sha1-CoLVtt11VStmXzcfgGBonBr3M24=",
"dev": true
},
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
@ -8438,6 +8626,15 @@
"pinkie": "^2.0.0"
}
},
"pixelmatch": {
"version": "4.0.2",
"resolved": "http://registry.npm.taobao.org/pixelmatch/download/pixelmatch-4.0.2.tgz",
"integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=",
"dev": true,
"requires": {
"pngjs": "^3.0.0"
}
},
"pkg-dir": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
@ -8447,6 +8644,12 @@
"find-up": "^2.1.0"
}
},
"pngjs": {
"version": "3.3.3",
"resolved": "http://registry.npm.taobao.org/pngjs/download/pngjs-3.3.3.tgz",
"integrity": "sha1-hRc3A73j7ayJmHV7luWCHQlmohs=",
"dev": true
},
"pngquant-bin": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-4.0.0.tgz",
@ -9180,7 +9383,7 @@
},
"public-encrypt": {
"version": "4.0.2",
"resolved": "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
"integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==",
"dev": true,
"requires": {
@ -9482,6 +9685,12 @@
"readable-stream": "^2.0.0"
}
},
"read-chunk": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/read-chunk/download/read-chunk-1.0.1.tgz",
"integrity": "sha1-X2jKswfmY/GZk1J9m1icrORmEZQ=",
"dev": true
},
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@ -10124,7 +10333,7 @@
},
"sha.js": {
"version": "2.4.11",
"resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
"dev": true,
"requires": {
@ -10658,6 +10867,21 @@
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
"dev": true
},
"stream-to": {
"version": "0.2.2",
"resolved": "http://registry.npm.taobao.org/stream-to/download/stream-to-0.2.2.tgz",
"integrity": "sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0=",
"dev": true
},
"stream-to-buffer": {
"version": "0.1.0",
"resolved": "http://registry.npm.taobao.org/stream-to-buffer/download/stream-to-buffer-0.1.0.tgz",
"integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=",
"dev": true,
"requires": {
"stream-to": "~0.2.0"
}
},
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@ -11544,6 +11768,12 @@
"setimmediate": "^1.0.4"
}
},
"tinycolor2": {
"version": "1.4.1",
"resolved": "http://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.1.tgz",
"integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=",
"dev": true
},
"to-absolute-glob": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
@ -13210,6 +13440,25 @@
"lodash": "^4.17.5"
}
},
"webpack-pwa-manifest": {
"version": "3.7.1",
"resolved": "http://registry.npm.taobao.org/webpack-pwa-manifest/download/webpack-pwa-manifest-3.7.1.tgz",
"integrity": "sha1-7zykVxsfeZpHAiW+U3wMpqGslQU=",
"dev": true,
"requires": {
"css-color-names": "0.0.4",
"jimp": "^0.2.28",
"mime": "^1.6.0"
},
"dependencies": {
"mime": {
"version": "1.6.0",
"resolved": "http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz",
"integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=",
"dev": true
}
}
},
"webpack-sources": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
@ -13312,6 +13561,40 @@
"integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=",
"dev": true
},
"xhr": {
"version": "2.5.0",
"resolved": "http://registry.npm.taobao.org/xhr/download/xhr-2.5.0.tgz",
"integrity": "sha1-vtjRZ21co2EIZnaSt0sxbEluSd0=",
"dev": true,
"requires": {
"global": "~4.3.0",
"is-function": "^1.0.1",
"parse-headers": "^2.0.0",
"xtend": "^4.0.0"
}
},
"xml-parse-from-string": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/xml-parse-from-string/download/xml-parse-from-string-1.0.1.tgz",
"integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=",
"dev": true
},
"xml2js": {
"version": "0.4.19",
"resolved": "http://registry.npm.taobao.org/xml2js/download/xml2js-0.4.19.tgz",
"integrity": "sha1-aGwg8hMgnpSr8NG88e+qKRx4J6c=",
"dev": true,
"requires": {
"sax": ">=0.6.0",
"xmlbuilder": "~9.0.1"
}
},
"xmlbuilder": {
"version": "9.0.7",
"resolved": "http://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz",
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
"dev": true
},
"xregexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",

View File

@ -41,6 +41,7 @@
"file-loader": "^2.0.0",
"html-webpack-plugin": "^3.2.0",
"image-webpack-loader": "^4.3.1",
"offline-plugin": "^5.0.5",
"react-addons-test-utils": "^15.6.2",
"react-hot-loader": "^4.3.11",
"sass-loader": "^7.1.0",
@ -55,7 +56,8 @@
"webpack-cli": "^3.1.1",
"webpack-dev-middleware": "^3.3.0",
"webpack-dev-server": "^3.1.8",
"webpack-merge": "^4.1.4"
"webpack-merge": "^4.1.4",
"webpack-pwa-manifest": "^3.7.1"
},
"dependencies": {
"classnames": "^2.2.6",

View File

@ -1,5 +1,6 @@
import renderApp from './render'
import { isClashX, setupJsBridge } from '@lib/jsBridge'
import * as OfflinePluginRuntime from 'offline-plugin/runtime'
/**
* Global entry
@ -10,3 +11,21 @@ if (isClashX()) {
} else {
renderApp()
}
// PWA install
OfflinePluginRuntime.install({
onUpdateReady: () => {
console.log('SW Event:', 'onUpdateReady')
// Tells to new SW to take control immediately
OfflinePluginRuntime.applyUpdate()
},
onUpdated: () => {
console.log('SW Event:', 'onUpdated')
// Reload the webpage to load into the new version
window.location.reload()
},
onUpdateFailed: () => {
console.error('SW Event:', 'onUpdateFailed')
},
})