From 5639a4b37cd8c2251e268dfe1320df9b0c97fa37 Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Wed, 22 Apr 2020 14:45:57 +0200 Subject: [PATCH] build: plugin version that does not rely on external variables --- .npmignore | 1 + package-lock.json | Bin 616979 -> 618329 bytes package.json | 3 ++- src/mol-plugin/version.ts | 11 ++++------- webpack.config.common.js | 13 ++++++++++--- 5 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 .npmignore diff --git a/.npmignore b/.npmignore new file mode 100644 index 000000000..37565e32b --- /dev/null +++ b/.npmignore @@ -0,0 +1 @@ +tsconfig.servers.buildinfo \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b50d0f80ee302c08a7b65bfc6250b8a1b27b799e..77db567828aaa3e147807aed27370485c39056e9 100644 GIT binary patch delta 1123 zcmZuwZA@EL7|uQS-rieQJ}fL!AY1J~6l{CTr9k<y(b5m0^aE^ZKr>h17H->hg?>>? zOi4_tKNjbj@EQ#n(;wRsGcc2!EV_*SQd~xw#Vx_e)a;+h4E|V*i4t$CrcQT$z0Y~x z^FHr+-g64ywCz4<%e_T>hR#+O_9vc&jaqaFU#&(b=?c`=qw6iO)s9s7K#%s0!MOo> zGi<z#8lbpC-T|*0QTSUQTA3{5wi|JN9bG5NQQ%YbjtSIvQ6v8KC$y!6=eCF@*tZiD zVS-x+h*yLYdaYgvC$wEUBmD9j)8=;!51Iw5#Tgp2%|<NA*@cN$LZ-RVtSRD~;^%~D znp<+rEX~ikdPQ?2&}TR6C+()*@loqk#x7=te0{Fbkr9tz9FKY@J+}0uc|PekL+}mq z1&sedM{X3(yBljb9j7yB6T)<AK}=?0IZyJ3OPz!g+W%0`{7h(6v9xb`BG|>x^mW_x zL*0Rq@y_hLNf@1h_dX!oA@h~29v;|81^mV`y}09Za<RVRQC{*07k8)+cO_5S@Vl4k z6Lf_wIk;IU?)AW$O|}Qck7*g)zChRGy><GU4RVy^-KEF0xfeK&Y{xZP*+b<&b*2bV z)X8h$&PS9AHr}TxIFV!2CFj9&4bk{}v+Oc@id0^b!fQ6hSO@1?Xcd0sXBImCpQpg? zW#&;sNw^V;O{5A(R+ul8WsHwsVNNOj3O6?y%O})~u#kZDTA~F`bubh-4`{wQ6)Wvd zpIHzjZ!17+(DlHrD0Qq!ToM<p&LzPVcJZl^VUJHgmmCZBM4dq}97WIL$3fQkDsW%2 z1F(9RtpyjyD51D5qo8<+rQvETs)NWwx(c7Y!CoZFiP&|M?UXu`&S1FBD&)Z3V=bWQ zpsK+cBIMxyj%|RojMSrhjX4B6+cFt=@3S#He~-Oi1>6-$Oe$Oj@gLaNOOS)L-`Q5k zy+~4U^9Wgm>waVfAFOuC8AV#UpLiyw4T(_!mL2FQ)P0R87+*y^sB7h{;ok|`cr-OD z#w0H?!c;ss9nn68UD3(f3Iis}&viy;vwV{4wwcHH_)x$)?wpQfla8p@={`N>SoB6M zM(ZS>w)4T{V4pRRd^sbY_Ipz4nP}J+a|C@uanTnLllEb6&^6*uI|t`ICNKlh?+GU~ z{c6pd$JNrW(-}1{RadG1UYbyuI{D-;cp{@R$8r&AmIVXX4CxfDgxNfKc%@Y)J=T4a K!MjFzfA^m>(~cbg delta 548 zcmZ`#T}V@580LKE`_A{BO}DX=>=ZVmW{{Cg3Zx%u6@*=s21;S0fprr^7lGckM6jEM zafGM3iA8kLN<EUk7pYiR1-V@GW5Hsvi=r-CEC_<6lVU~C-TS=n^Yik&e%t6gZ%hwp z_gJPDZj?o^+s_Qj)v_M(7v5~K>3ZyKVGX3>?Bxbr-eNZ6Y`>g9D9LSl)5)%NBl}sm zal-ZV&L|t#mN0qv;&y0N7NNzDY&J|Yi!3@#cc=6@>mQrJzJgAD1)g7UE<BFW>DywD z_)U3$4!>$bWmxS*<q=;;Yh7{p0Nk&_rh#uF(duNY5wy4HLHg8el*20)JsL8W8NkyC zW@7Xv51~?277{~z6Y3|~YAWnEhS`5(;KlS0Cff{3w#j2bWX~|0=8np9O-mB;IvA<* zqT_Vviku4L%b2ujeNLuoe*HsNN$$Ht<EPZt<49Pt0qLR&VyG%40`F9eQnM<jEngCo zN>KYlwXtRyN6X5jnY_|Xr_$>~$1PQdXD6kN(s#*GDyk6Xxi`gcNIx#UQoZCZs29FJ z<gpm@VZN+VD=R^zHB#uff8Epm=;S6w^7<;I&&yUE?D8u8@LmOuAiB#m&>i7^da}dJ GZ2Jk-c+(>Q diff --git a/package.json b/package.json index 1f5cd7461..1544195e5 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,8 @@ "ts-jest": "^25.4.0", "typescript": "^3.8.3", "webpack": "^4.42.1", - "webpack-cli": "^3.3.11" + "webpack-cli": "^3.3.11", + "webpack-version-file-plugin": "^0.4.0" }, "dependencies": { "@material-ui/core": "^4.9.10", diff --git a/src/mol-plugin/version.ts b/src/mol-plugin/version.ts index 949807afa..b42aab3e0 100644 --- a/src/mol-plugin/version.ts +++ b/src/mol-plugin/version.ts @@ -5,11 +5,8 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -/** version from package.json, to be filled in at bundle build time */ -declare const __VERSION__: string; -export const PLUGIN_VERSION = __VERSION__; +/** version from package.json, to be filled in at build time */ +export const PLUGIN_VERSION = ''; -/** unix time stamp, to be filled in at bundle build time */ -declare const __VERSION_TIMESTAMP__: number; -export const PLUGIN_VERSION_TIMESTAMP = __VERSION_TIMESTAMP__; -export const PLUGIN_VERSION_DATE = new Date(PLUGIN_VERSION_TIMESTAMP); \ No newline at end of file +/** to be filled in at build time */ +export const PLUGIN_VERSION_DATE = +new Date(); \ No newline at end of file diff --git a/webpack.config.common.js b/webpack.config.common.js index 2365f4b86..f062c5b85 100644 --- a/webpack.config.common.js +++ b/webpack.config.common.js @@ -2,6 +2,7 @@ const path = require('path'); const webpack = require('webpack'); const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const VersionFile = require('webpack-version-file-plugin'); // const CircularDependencyPlugin = require('circular-dependency-plugin'); const sharedConfig = { @@ -38,11 +39,17 @@ const sharedConfig = { ], }), new webpack.DefinePlugin({ - __VERSION__: webpack.DefinePlugin.runtimeValue(() => JSON.stringify(require('./package.json').version), true), - __VERSION_TIMESTAMP__: webpack.DefinePlugin.runtimeValue(() => `${new Date().valueOf()}`, true), + // __VERSION__: webpack.DefinePlugin.runtimeValue(() => JSON.stringify(require('./package.json').version), true), + // __VERSION_TIMESTAMP__: webpack.DefinePlugin.runtimeValue(() => `${new Date().valueOf()}`, true), 'process.env.DEBUG': JSON.stringify(process.env.DEBUG) }), - new MiniCssExtractPlugin({ filename: 'app.css' }) + new MiniCssExtractPlugin({ filename: 'app.css' }), + new VersionFile({ + extras: { timestamp: `${new Date().valueOf()}` }, + packageFile: path.resolve(__dirname, 'package.json'), + templateString: `export const PLUGIN_VERSION = '<%= package.version %>';\nexport const PLUGIN_VERSION_DATE = new Date(<%= extras.timestamp %>);`, + outputFile: path.resolve(__dirname, 'lib/mol-plugin/version.js') + }) ], resolve: { modules: [ -- GitLab