Добавил скачивание и распаковку node_sqlite3.node для дистрибутива win
This commit is contained in:
@@ -9,7 +9,7 @@ const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|||||||
const CleanWebpackPlugin = require('clean-webpack-plugin');
|
const CleanWebpackPlugin = require('clean-webpack-plugin');
|
||||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||||
|
|
||||||
const publicDir = path.resolve(__dirname, '../dist/public');
|
const publicDir = path.resolve(__dirname, '../dist/tmp/public');
|
||||||
const clientDir = path.resolve(__dirname, '../client');
|
const clientDir = path.resolve(__dirname, '../client');
|
||||||
|
|
||||||
module.exports = merge(baseWpConfig, {
|
module.exports = merge(baseWpConfig, {
|
||||||
|
|||||||
@@ -1,16 +1,31 @@
|
|||||||
|
const sqliteRemoteUrl = 'https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.0.4';
|
||||||
|
const sqliteFile = 'node-v64-win32-x64';
|
||||||
|
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const webpack = require("webpack");
|
const webpack = require("webpack");
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const download = require('download');
|
||||||
|
const decompress = require('decompress');
|
||||||
|
const decompressTargz = require('decompress-targz');
|
||||||
|
|
||||||
const CleanWebpackPlugin = require('clean-webpack-plugin');
|
const CleanWebpackPlugin = require('clean-webpack-plugin');
|
||||||
const DisableOutputWebpackPlugin = require('disable-output-webpack-plugin');
|
const DisableOutputWebpackPlugin = require('disable-output-webpack-plugin');
|
||||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
||||||
|
const EventHooksPlugin = require('event-hooks-webpack-plugin');
|
||||||
|
|
||||||
const distDir = path.resolve(__dirname, '../dist');
|
const distDir = path.resolve(__dirname, '../dist');
|
||||||
|
const publicDir = `${distDir}/tmp/public`;
|
||||||
const outDir = `${distDir}/win`;
|
const outDir = `${distDir}/win`;
|
||||||
|
|
||||||
|
const sqliteFilename = `${sqliteFile}.tar.gz`;
|
||||||
|
const tempDir = `${distDir}/tmp/sqlite`;
|
||||||
|
const sqliteDecompressedFilename = `${tempDir}/${sqliteFile}/node_sqlite3.node`;
|
||||||
|
const sqliteDistFilename = `${outDir}/node_sqlite3.node`;
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
mode: 'production',
|
mode: 'production',
|
||||||
entry: `${distDir}/public/index.html`,
|
entry: `${publicDir}/index.html`,
|
||||||
output: {
|
output: {
|
||||||
path: outDir
|
path: outDir
|
||||||
},
|
},
|
||||||
@@ -23,11 +38,35 @@ module.exports = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new CleanWebpackPlugin([outDir], {root: distDir}),
|
new CleanWebpackPlugin([outDir, tempDir], {root: distDir}),
|
||||||
new DisableOutputWebpackPlugin(),
|
new DisableOutputWebpackPlugin(),
|
||||||
new CopyWebpackPlugin([
|
new CopyWebpackPlugin([
|
||||||
{ from: `${distDir}/public`, to: `${outDir}/public` }
|
{ from: publicDir, to: `${outDir}/public` }
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
|
new EventHooksPlugin({
|
||||||
|
done: () => {
|
||||||
|
// Скачиваем node_sqlite3.node для винды, т.к. pkg не включает его в сборку
|
||||||
|
const url = `${sqliteRemoteUrl}/${sqliteFilename}`;
|
||||||
|
fs.mkdirSync(tempDir);
|
||||||
|
const d = download(url);
|
||||||
|
d.pipe(fs.createWriteStream(`${tempDir}/${sqliteFilename}`));
|
||||||
|
d.on('end', () => {
|
||||||
|
console.log(`downloading ${url} done`);
|
||||||
|
|
||||||
|
//распаковываем
|
||||||
|
decompress(`${tempDir}/${sqliteFilename}`, `${tempDir}`, {
|
||||||
|
plugins: [
|
||||||
|
decompressTargz()
|
||||||
|
]
|
||||||
|
}).then(() => {
|
||||||
|
console.log('files decompressed');
|
||||||
|
// копируем в дистрибутив
|
||||||
|
fs.copyFileSync(sqliteDecompressedFilename, sqliteDistFilename);
|
||||||
|
console.log(`copied ${sqliteDecompressedFilename} to ${sqliteDistFilename}`);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|||||||
696
package-lock.json
generated
696
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -29,12 +29,14 @@
|
|||||||
"clean-webpack-plugin": "^1.0.0",
|
"clean-webpack-plugin": "^1.0.0",
|
||||||
"copy-webpack-plugin": "^4.6.0",
|
"copy-webpack-plugin": "^4.6.0",
|
||||||
"css-loader": "^1.0.0",
|
"css-loader": "^1.0.0",
|
||||||
|
"decompress-targz": "^4.1.1",
|
||||||
"disable-output-webpack-plugin": "^1.0.1",
|
"disable-output-webpack-plugin": "^1.0.1",
|
||||||
"element-theme-chalk": "^2.4.11",
|
"element-theme-chalk": "^2.4.11",
|
||||||
"eslint": "^5.11.1",
|
"eslint": "^5.11.1",
|
||||||
"eslint-plugin-html": "^5.0.0",
|
"eslint-plugin-html": "^5.0.0",
|
||||||
"eslint-plugin-node": "^8.0.0",
|
"eslint-plugin-node": "^8.0.0",
|
||||||
"eslint-plugin-vue": "^5.0.0",
|
"eslint-plugin-vue": "^5.0.0",
|
||||||
|
"event-hooks-webpack-plugin": "^2.1.1",
|
||||||
"file-loader": "^3.0.1",
|
"file-loader": "^3.0.1",
|
||||||
"html-webpack-plugin": "^3.2.0",
|
"html-webpack-plugin": "^3.2.0",
|
||||||
"mini-css-extract-plugin": "^0.5.0",
|
"mini-css-extract-plugin": "^0.5.0",
|
||||||
@@ -57,6 +59,8 @@
|
|||||||
"axios": "^0.18.0",
|
"axios": "^0.18.0",
|
||||||
"bluebird": "^3.5.3",
|
"bluebird": "^3.5.3",
|
||||||
"compression": "^1.7.3",
|
"compression": "^1.7.3",
|
||||||
|
"decompress": "^4.2.0",
|
||||||
|
"download": "^7.1.0",
|
||||||
"element-ui": "^2.4.11",
|
"element-ui": "^2.4.11",
|
||||||
"express": "^4.16.4",
|
"express": "^4.16.4",
|
||||||
"lodash": "^4.17.11",
|
"lodash": "^4.17.11",
|
||||||
|
|||||||
Reference in New Issue
Block a user