diff --git a/.travis.yml b/.travis.yml index 4331a292..2483f6f2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,10 +12,12 @@ install: - cd frontend - yarn - cd ../app - - ./win_install.bat + - ./win-install.bat + - cd .. script: - cd frontend - yarn run dist - cd ../app - - ./win_build.bat + - ./win-build.bat + - cd .. diff --git a/README.md b/README.md index cd9d4b98..e374dc14 100644 --- a/README.md +++ b/README.md @@ -126,9 +126,9 @@ yarn run serve REM Electron 端 cd ../app REM 安装依赖 -win_install.bat +win-install.bat REM 打包 打包前请在前端目录运行打包命令 -win_build.bat +win-build.bat REM 开发 yarn run start ``` diff --git a/app/.gitignore b/app/.gitignore index add654d0..126a2371 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -2,3 +2,4 @@ node_modules dist vs out +bin diff --git a/app/bin/.gitattributes b/app/bin/.gitattributes deleted file mode 100644 index 0406b4d5..00000000 --- a/app/bin/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -*.exe filter=lfs diff=lfs merge=lfs -text -pandoc filter=lfs diff=lfs merge=lfs -text diff --git a/app/bin/pandoc/2.7.3/darwin/pandoc b/app/bin/pandoc/2.7.3/darwin/pandoc deleted file mode 100644 index 16e9e5ae..00000000 --- a/app/bin/pandoc/2.7.3/darwin/pandoc +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e17fc39dac7d3d85f02e170b59572b459cfa1def0f31a846da205ced99e1b1c6 -size 60319532 diff --git a/app/bin/pandoc/2.7.3/linux/pandoc b/app/bin/pandoc/2.7.3/linux/pandoc deleted file mode 100644 index 855369e9..00000000 --- a/app/bin/pandoc/2.7.3/linux/pandoc +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad46dc1745dad0d4dbdb4fe14892534eca3a8507d35e33fd7eadc6d7fda05fea -size 74689368 diff --git a/app/bin/pandoc/2.7.3/win32/pandoc.exe b/app/bin/pandoc/2.7.3/win32/pandoc.exe deleted file mode 100644 index c9676e9b..00000000 --- a/app/bin/pandoc/2.7.3/win32/pandoc.exe +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:67f139c18f0386ffc00512c198f6e92729bcb4ef15fe3e4c0d7c5f6565361c07 -size 139522412 diff --git a/app/copy-assets.js b/app/copy-assets.js new file mode 100644 index 00000000..214b4370 --- /dev/null +++ b/app/copy-assets.js @@ -0,0 +1,25 @@ +const os = require('os') +const path = require('path') +const fs = require('fs-extra') + +const platform = os.platform() + +const assetsPath = path.join(__dirname, 'dist/assets') +try { + fs.unlinkSync(assetsPath) +} catch { +} + +fs.copySync(path.join(__dirname, 'src/assets'), assetsPath) + +if (platform === 'win32') { + const pandocFilePath = path.join(__dirname, 'dist/pandoc.exe') + if (!fs.existsSync(pandocFilePath)) { + fs.copySync(path.join(__dirname, 'bin/win32-pandoc-2.7.3.exe'), pandocFilePath) + } +} else { + const pandocFilePath = path.join(__dirname, 'dist/pandoc') + if (!fs.existsSync(pandocFilePath)) { + fs.copySync(path.join(__dirname, `bin/${platform}-pandoc-2.7.3`), pandocFilePath) + } +} diff --git a/app/copy_assets.js b/app/copy_assets.js deleted file mode 100644 index 5163672d..00000000 --- a/app/copy_assets.js +++ /dev/null @@ -1,18 +0,0 @@ -const os = require('os') -const path = require('path') -const fs = require('fs-extra') - -const platform = os.platform() - -try { - fs.unlinkSync(path.join(__dirname, 'dist/assets')) -} catch (error) { -} - -fs.copySync(path.join(__dirname, 'src/assets'), path.join(__dirname, 'dist/assets')) - -if (platform === 'win32') { - fs.copySync(path.join(__dirname, 'bin/pandoc/2.7.3/win32/pandoc.exe'), path.join(__dirname, 'dist/pandoc.exe')) -} else { - fs.copySync(path.join(__dirname, `bin/pandoc/2.7.3/${platform}/pandoc`), path.join(__dirname, 'dist/pandoc')) -} diff --git a/app/download-pandoc.js b/app/download-pandoc.js new file mode 100644 index 00000000..20f15fea --- /dev/null +++ b/app/download-pandoc.js @@ -0,0 +1,17 @@ +const os = require('os') +const fs = require('fs') +const path = require('path') +const request = require('request') + +const filename = os.platform() + '-' + 'pandoc-2.7.3' + (os.platform() === 'win32' ? '.exe' : '') +const downloadUrl = 'https://github.com/purocean/yn/releases/download/v1.1/' + filename + +const dir = path.join(__dirname, './bin') +if (!fs.existsSync(dir)) { + fs.mkdirSync(dir) +} + +const filePath = path.join(dir, filename) + +console.log('Download pandoc', downloadUrl, filename, filePath) +request(downloadUrl).pipe(fs.createWriteStream(filePath)) diff --git a/app/install.sh b/app/install.sh index bf9f852a..6bed93a5 100644 --- a/app/install.sh +++ b/app/install.sh @@ -11,3 +11,5 @@ export npm_config_runtime=electron export npm_config_build_from_source=true # Install all dependencies, and store cache to ~/.electron-gyp. HOME=~/.electron-gyp yarn + +yarn run download-pandoc diff --git a/app/package.json b/app/package.json index cfa624dc..76b6d285 100644 --- a/app/package.json +++ b/app/package.json @@ -8,7 +8,8 @@ "email": "purocean@outlook.com" }, "scripts": { - "copy-assets": "node copy_assets.js", + "download-pandoc": "node download-pandoc.js", + "copy-assets": "node copy-assets.js", "build": "tsc && npm run copy-assets", "serve": "ts-node src/server/main.ts", "start": "npm run build && electron ./dist/app.js" diff --git a/app/win_build.bat b/app/win-build.bat similarity index 100% rename from app/win_build.bat rename to app/win-build.bat diff --git a/app/win_install.bat b/app/win-install.bat similarity index 90% rename from app/win_install.bat rename to app/win-install.bat index cfd66ba3..f47903fb 100644 --- a/app/win_install.bat +++ b/app/win-install.bat @@ -6,4 +6,5 @@ set npm_config_runtime="electron" set npm_config_cache=~\.npm-electron REM npm i --registry=https://registry.npm.taobao.org yarn +yarn run download-pandoc endlocal diff --git a/frontend/copy_assets.js b/frontend/copy-assets.js similarity index 100% rename from frontend/copy_assets.js rename to frontend/copy-assets.js diff --git a/frontend/package.json b/frontend/package.json index 23efadcb..4025b0e0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "copy-assets": "node copy_assets.js", + "copy-assets": "node copy-assets.js", "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint",