|
|
|
const path = require("path");
|
|
|
|
function resolve(dir) {
|
|
|
|
return path.join(__dirname, dir);
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
devServer: {
|
|
|
|
disableHostCheck: true,
|
|
|
|
port: process.env.DEV_SERVER_PORT || 8080,
|
|
|
|
proxy: {
|
|
|
|
"^/api": {
|
|
|
|
target: "http://localhost:3000",
|
|
|
|
changeOrigin: true,
|
|
|
|
pathRewrite: {
|
|
|
|
"^/api": "/",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
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: {
|
|
|
|
nodeIntegration: true,
|
|
|
|
externals: ["@nondanee/unblockneteasemusic", "@njzy/unblockneteasemusic"],
|
|
|
|
builderOptions: {
|
|
|
|
productName: "YesPlayMusic",
|
|
|
|
copyright: "Copyright © YesPlayMusic",
|
|
|
|
// compression: "maximum", // 机器好的可以打开,配置压缩,开启后会让 .AppImage 格式的客户端启动缓慢
|
|
|
|
asar: true,
|
|
|
|
publish: [
|
|
|
|
{
|
|
|
|
provider: "github",
|
|
|
|
owner: "qier222",
|
|
|
|
repo: "YesPlayMusic",
|
|
|
|
vPrefixedTagName: true,
|
|
|
|
releaseType: "draft",
|
|
|
|
},
|
|
|
|
],
|
|
|
|
directories: {
|
|
|
|
output: "dist_electron",
|
|
|
|
},
|
|
|
|
mac: {
|
|
|
|
target: [
|
|
|
|
{
|
|
|
|
target: "dmg",
|
|
|
|
arch: ["x64", "arm64", "universal"],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
artifactName: "${productName}-${os}-${version}-${arch}.${ext}",
|
|
|
|
category: "public.app-category.music",
|
|
|
|
darkModeSupport: true,
|
|
|
|
},
|
|
|
|
win: {
|
|
|
|
target: [
|
|
|
|
{
|
|
|
|
target: "portable",
|
|
|
|
arch: ["x64"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
target: "nsis",
|
|
|
|
arch: ["x64"],
|
|
|
|
deleteAppDataOnUninstall: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
publisherName: "YesPlayMusic",
|
|
|
|
icon: "build/icons/icon.ico",
|
|
|
|
publish: ["github"],
|
|
|
|
},
|
|
|
|
linux: {
|
|
|
|
target: [
|
|
|
|
{
|
|
|
|
target: "AppImage",
|
|
|
|
arch: ["x64"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
target: "tar.gz",
|
|
|
|
arch: ["x64"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
target: "deb",
|
|
|
|
arch: ["x64", "armv7l"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
target: "rpm",
|
|
|
|
arch: ["x64"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
target: "snap",
|
|
|
|
arch: ["x64"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
target: "pacman",
|
|
|
|
arch: ["x64"],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
category: "Music",
|
|
|
|
icon: "./build/icon.icns",
|
|
|
|
},
|
|
|
|
dmg: {
|
|
|
|
icon: "build/icons/icon.icns",
|
|
|
|
},
|
|
|
|
nsis: {
|
|
|
|
oneClick: false,
|
|
|
|
allowToChangeInstallationDirectory: true,
|
|
|
|
perMachine: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
// 主线程的配置文件
|
|
|
|
chainWebpackMainProcess: (config) => {
|
|
|
|
config.plugin("define").tap((args) => {
|
|
|
|
args[0]["IS_ELECTRON"] = true;
|
|
|
|
return args;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
// 渲染线程的配置文件
|
|
|
|
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: ["../netease_api/routes.js"],
|
|
|
|
// mainProcessArgs: []
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|