|
|
|
|
const path = require("path");
|
|
|
|
|
const CopywebpackPlugin = require('copy-webpack-plugin')
|
|
|
|
|
function resolve(dir) {
|
|
|
|
|
return path.join(__dirname, dir);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
devServer: {
|
|
|
|
|
disableHostCheck: true,
|
|
|
|
|
port: process.env.DEV_SERVER_PORT || 8080
|
|
|
|
|
},
|
|
|
|
|
pwa: {
|
|
|
|
|
name: "YesPlayMusic",
|
|
|
|
|
iconPaths: {
|
|
|
|
|
favicon32: "img/icons/favicon-32x32.png",
|
|
|
|
|
},
|
|
|
|
|
themeColor: "#ffffff00",
|
|
|
|
|
manifestOptions: {
|
|
|
|
|
background_color: "#335eea",
|
|
|
|
|
},
|
|
|
|
|
// workboxOptions: {
|
|
|
|
|
// swSrc: "dev/sw.js",
|
|
|
|
|
// },
|
|
|
|
|
},
|
|
|
|
|
pages: {
|
|
|
|
|
index: {
|
|
|
|
|
entry: "src/main.js",
|
|
|
|
|
template: "public/index.html",
|
|
|
|
|
filename: "index.html",
|
|
|
|
|
title: "YesPlayMusic",
|
|
|
|
|
chunks: ["main", "chunk-vendors", "chunk-common", "index"],
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
chainWebpack(config) {
|
|
|
|
|
config.module.rules.delete("svg");
|
|
|
|
|
config.module.rule("svg").exclude.add(resolve("src/assets/icons")).end();
|
|
|
|
|
config.module
|
|
|
|
|
.rule("icons")
|
|
|
|
|
.test(/\.svg$/)
|
|
|
|
|
.include.add(resolve("src/assets/icons"))
|
|
|
|
|
.end()
|
|
|
|
|
.use("svg-sprite-loader")
|
|
|
|
|
.loader("svg-sprite-loader")
|
|
|
|
|
.options({
|
|
|
|
|
symbolId: "icon-[name]",
|
|
|
|
|
})
|
|
|
|
|
.end();
|
|
|
|
|
},
|
|
|
|
|
// 添加插件的配置
|
|
|
|
|
pluginOptions: {
|
|
|
|
|
// electron-builder的配置文件
|
|
|
|
|
electronBuilder: {
|
|
|
|
|
builderOptions: {
|
|
|
|
|
// files: [
|
|
|
|
|
// {
|
|
|
|
|
// 'filter': ['**/*']
|
|
|
|
|
// }
|
|
|
|
|
// ],
|
|
|
|
|
// extraFiles: ['./extensions/'],
|
|
|
|
|
// 应用名称
|
|
|
|
|
productName: 'Yes Play Music',
|
|
|
|
|
// 版权
|
|
|
|
|
copyright: 'Copyright © YesPlayMusic',
|
|
|
|
|
compression: "maximum",
|
|
|
|
|
// 是否打包加密
|
|
|
|
|
asar: true,
|
|
|
|
|
// // 项目打包生成的文件目录
|
|
|
|
|
// directories: {
|
|
|
|
|
// output: 'build'
|
|
|
|
|
// },
|
|
|
|
|
// window的icon头标
|
|
|
|
|
win: {
|
|
|
|
|
icon: 'public/favicon.ico'
|
|
|
|
|
},
|
|
|
|
|
// 是否静默安装
|
|
|
|
|
nsis: {
|
|
|
|
|
oneClick: false,
|
|
|
|
|
allowToChangeInstallationDirectory: true
|
|
|
|
|
},
|
|
|
|
|
// 集成 nodejs, https://nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration
|
|
|
|
|
// nodeIntegration: true
|
|
|
|
|
},
|
|
|
|
|
chainWebpackMainProcess: config => {
|
|
|
|
|
// console.log(config)
|
|
|
|
|
let outputDir = 'dist_electron/bundled'
|
|
|
|
|
config.plugin('copy').use(CopywebpackPlugin, [
|
|
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
from: path.resolve(__dirname, './NeteaseCloudMusicApi-master'),
|
|
|
|
|
to: path.join(__dirname, outputDir, 'NeteaseCloudMusicApi-master')
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
])
|
|
|
|
|
}
|
|
|
|
|
// 渲染线程的配置文件
|
|
|
|
|
// chainWebpackRendererProcess: config => {
|
|
|
|
|
// // 渲染线程的一些其他配置
|
|
|
|
|
// // Chain webpack config for electron renderer process only
|
|
|
|
|
// // The following example will set IS_ELECTRON to true in your app
|
|
|
|
|
// config.plugin('define').tap((args) => {
|
|
|
|
|
// args[0]['IS_ELECTRON'] = true
|
|
|
|
|
// return args
|
|
|
|
|
// })
|
|
|
|
|
// },
|
|
|
|
|
// 主入口文件
|
|
|
|
|
// mainProcessFile: 'src/main.js',
|
|
|
|
|
// mainProcessWatch: [],
|
|
|
|
|
// mainProcessArgs: []
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 打包时不生成.map文件,减少体积,加快速度如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
|
|
|
|
|
productionSourceMap: false,
|
|
|
|
|
// 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
|
|
|
|
|
assetsDir: 'src/renderer/static',
|
|
|
|
|
// 跨域配置
|
|
|
|
|
devServer: {
|
|
|
|
|
disableHostCheck: true
|
|
|
|
|
},
|
|
|
|
|
// css 样式
|
|
|
|
|
css: {}
|
|
|
|
|
};
|