优化开发编译速度
This commit is contained in:
+19
-5
@@ -1,6 +1,8 @@
|
||||
/** @type {import('next').NextConfig} */
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
|
||||
const { PHASE_DEVELOPMENT_SERVER } = require('next/constants');
|
||||
|
||||
// 检测是否为 Cloudflare Pages 构建
|
||||
const isCloudflare = process.env.CF_PAGES === '1' || process.env.BUILD_TARGET === 'cloudflare';
|
||||
|
||||
@@ -9,6 +11,9 @@ const optimizedPackageImports = [
|
||||
'@dnd-kit/modifiers',
|
||||
'@dnd-kit/sortable',
|
||||
'@dnd-kit/utilities',
|
||||
'@heroicons/react',
|
||||
'lucide-react',
|
||||
'react-icons',
|
||||
];
|
||||
|
||||
const serverExternalPackages = [
|
||||
@@ -24,7 +29,10 @@ const serverExternalPackages = [
|
||||
'xpath',
|
||||
];
|
||||
|
||||
const nextConfig = {
|
||||
const createNextConfig = (phase) => {
|
||||
const isDevelopment = phase === PHASE_DEVELOPMENT_SERVER || process.env.NODE_ENV === 'development';
|
||||
|
||||
const nextConfig = {
|
||||
// Cloudflare Pages 不支持 standalone,使用默认输出
|
||||
output: isCloudflare ? undefined : 'standalone',
|
||||
eslint: {
|
||||
@@ -117,11 +125,17 @@ const nextConfig = {
|
||||
},
|
||||
};
|
||||
|
||||
const withPWA = require('next-pwa')({
|
||||
if (isDevelopment) {
|
||||
return nextConfig;
|
||||
}
|
||||
|
||||
const withPWA = require('next-pwa')({
|
||||
dest: 'public',
|
||||
disable: process.env.NODE_ENV === 'development',
|
||||
register: true,
|
||||
skipWaiting: true,
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = withPWA(nextConfig);
|
||||
return withPWA(nextConfig);
|
||||
};
|
||||
|
||||
module.exports = createNextConfig;
|
||||
|
||||
+2
-1
@@ -1,7 +1,6 @@
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any,no-console */
|
||||
import bs58 from 'bs58';
|
||||
import he from 'he';
|
||||
import Hls from 'hls.js';
|
||||
|
||||
export type DoubanImageProxyType =
|
||||
| 'direct'
|
||||
@@ -509,6 +508,8 @@ export async function getVideoResolutionFromM3u8(
|
||||
bitrate: string; // 视频码率(如 "2.5 Mbps")
|
||||
}> {
|
||||
try {
|
||||
const { default: Hls } = await import('hls.js');
|
||||
|
||||
// 直接使用m3u8 URL作为视频源,避免CORS问题
|
||||
return new Promise((resolve, reject) => {
|
||||
const video = document.createElement('video');
|
||||
|
||||
Reference in New Issue
Block a user