mirror of
https://github.com/langgenius/dify.git
synced 2026-03-26 00:38:03 +08:00
Made-with: Cursor # Conflicts: # .devcontainer/post_create_command.sh # api/commands.py # api/core/agent/cot_agent_runner.py # api/core/agent/fc_agent_runner.py # api/core/app/apps/workflow_app_runner.py # api/core/app/entities/queue_entities.py # api/core/app/entities/task_entities.py # api/core/workflow/workflow_entry.py # api/dify_graph/enums.py # api/dify_graph/graph/graph.py # api/dify_graph/graph_events/node.py # api/dify_graph/model_runtime/entities/message_entities.py # api/dify_graph/node_events/node.py # api/dify_graph/nodes/agent/agent_node.py # api/dify_graph/nodes/base/__init__.py # api/dify_graph/nodes/base/entities.py # api/dify_graph/nodes/base/node.py # api/dify_graph/nodes/llm/entities.py # api/dify_graph/nodes/llm/node.py # api/dify_graph/nodes/tool/tool_node.py # api/pyproject.toml # api/uv.lock # web/app/components/base/avatar/__tests__/index.spec.tsx # web/app/components/base/avatar/index.tsx # web/app/components/base/date-and-time-picker/time-picker/__tests__/index.spec.tsx # web/app/components/base/file-uploader/file-from-link-or-local/index.tsx # web/app/components/base/prompt-editor/index.tsx # web/app/components/datasets/metadata/edit-metadata-batch/modal.tsx # web/app/components/header/account-dropdown/index.spec.tsx # web/app/components/share/text-generation/index.tsx # web/app/components/workflow/block-selector/tool/action-item.tsx # web/app/components/workflow/block-selector/trigger-plugin/action-item.tsx # web/app/components/workflow/hooks/use-edges-interactions.ts # web/app/components/workflow/hooks/use-nodes-interactions.ts # web/app/components/workflow/index.tsx # web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx # web/app/components/workflow/nodes/http/components/key-value/key-value-edit/index.tsx # web/app/components/workflow/nodes/human-input/components/delivery-method/recipient/email-item.tsx # web/app/components/workflow/nodes/loop/use-interactions.ts # web/contract/router.ts # web/env.ts # web/eslint-suppressions.json # web/package.json # web/pnpm-lock.yaml
84 lines
2.6 KiB
TypeScript
84 lines
2.6 KiB
TypeScript
import type { NextConfig } from 'next'
|
|
import createMDX from '@next/mdx'
|
|
import { codeInspectorPlugin } from 'code-inspector-plugin'
|
|
import { env } from './env'
|
|
|
|
const parseBooleanEnv = (value: string | undefined): boolean | undefined => {
|
|
if (value === 'true')
|
|
return true
|
|
if (value === 'false')
|
|
return false
|
|
|
|
return undefined
|
|
}
|
|
|
|
const enableSourceMap = parseBooleanEnv(env.ENABLE_SOURCE_MAP)
|
|
const enableProdSourceMapsFallback = parseBooleanEnv(env.ENABLE_PROD_SOURCEMAP) ?? false
|
|
const enableProdSourceMaps = enableSourceMap ?? enableProdSourceMapsFallback
|
|
const isDev = process.env.NODE_ENV === 'development'
|
|
const withMDX = createMDX()
|
|
|
|
// the default url to prevent parse url error when running jest
|
|
const hasSetWebPrefix = env.NEXT_PUBLIC_WEB_PREFIX
|
|
const port = env.PORT
|
|
const locImageURLs = !hasSetWebPrefix ? [new URL(`http://localhost:${port}/**`), new URL(`http://127.0.0.1:${port}/**`)] : []
|
|
const remoteImageURLs = ([hasSetWebPrefix ? new URL(`${env.NEXT_PUBLIC_WEB_PREFIX}/**`) : '', ...locImageURLs].filter(item => !!item)) as URL[]
|
|
|
|
const nextConfig: NextConfig = {
|
|
basePath: env.NEXT_PUBLIC_BASE_PATH,
|
|
transpilePackages: ['@t3-oss/env-core', '@t3-oss/env-nextjs', 'echarts', 'zrender'],
|
|
turbopack: {
|
|
rules: codeInspectorPlugin({
|
|
bundler: 'turbopack',
|
|
}),
|
|
},
|
|
webpack: (config, { dev: _dev, isServer: _isServer }) => {
|
|
config.plugins.push(codeInspectorPlugin({ bundler: 'webpack' }))
|
|
|
|
config.experiments = {
|
|
asyncWebAssembly: true,
|
|
layers: true,
|
|
}
|
|
config.output.environment = {
|
|
asyncFunction: true,
|
|
}
|
|
|
|
return config
|
|
},
|
|
productionBrowserSourceMaps: enableProdSourceMaps, // enable browser source map generation during the production build
|
|
// Configure pageExtensions to include md and mdx
|
|
pageExtensions: ['ts', 'tsx', 'js', 'jsx', 'md', 'mdx'],
|
|
// https://nextjs.org/docs/messages/next-image-unconfigured-host
|
|
images: {
|
|
remotePatterns: remoteImageURLs.map(remoteImageURL => ({
|
|
protocol: remoteImageURL.protocol.replace(':', '') as 'http' | 'https',
|
|
hostname: remoteImageURL.hostname,
|
|
port: remoteImageURL.port,
|
|
pathname: remoteImageURL.pathname,
|
|
search: '',
|
|
})),
|
|
},
|
|
typescript: {
|
|
// https://nextjs.org/docs/api-reference/next.config.js/ignoring-typescript-errors
|
|
ignoreBuildErrors: true,
|
|
},
|
|
async redirects() {
|
|
return [
|
|
{
|
|
source: '/',
|
|
destination: '/apps',
|
|
permanent: false,
|
|
},
|
|
]
|
|
},
|
|
output: 'standalone',
|
|
compiler: {
|
|
removeConsole: isDev ? false : { exclude: ['warn', 'error'] },
|
|
},
|
|
experimental: {
|
|
turbopackFileSystemCacheForDev: false,
|
|
},
|
|
}
|
|
|
|
export default withMDX(nextConfig)
|