TAGS="bindata" make backend
```
-Webpack source maps are by default enabled in development builds and disabled in production builds. They can be enabled by setting the `ENABLE_SOURCEMAP=true` environment variable.
-
## Test
After following the steps above, a `gitea` binary will be available in the working directory.
TAGS="bindata sqlite sqlite_unlock_notify" \
make build
```
+
+## Source Maps
+
+By default, gitea generates reduced source maps for frontend files to conserve space. This can be controlled with the `ENABLE_SOURCEMAP` environment variable:
+
+- `ENABLE_SOURCEMAP=true` generates all source maps, the default for development builds
+- `ENABLE_SOURCEMAP=reduced` generates limited source maps, the default for production builds
+- `ENABLE_SOURCEMAP=false` generates no source maps
TAGS="bindata" make backend
```
-在开发构建中,默认启用 Webpack 源映射,在生产构建中禁用。可以通过设置`ENABLE_SOURCEMAP=true`环境变量来启用它们。
-
## 测试
按照上述步骤完成后,工作目录中将会有一个`gitea`二进制文件。可以从该目录进行测试,或将其移动到带有测试数据的目录中。当手动从命令行启动 Gitea 时,可以通过按下`Ctrl + C`来停止程序。
TAGS="bindata sqlite sqlite_unlock_notify" \
make build
```
+
+## 源映射
+
+默认情况下,gitea 会为前端文件生成精简的源映射以节省空间。 这可以通过“ENABLE_SOURCEMAP”环境变量进行控制:
+
+- `ENABLE_SOURCEMAP=true` 生成所有源映射,这是开发版本的默认设置
+- `ENABLE_SOURCEMAP=reduced` 生成有限的源映射,这是生产版本的默认设置
+- `ENABLE_SOURCEMAP=false` 不生成源映射
const isProduction = env.NODE_ENV !== 'development';
-let sourceMapEnabled;
+// ENABLE_SOURCEMAP accepts the following values:
+// true - all enabled, the default in development
+// reduced - minimal sourcemaps, the default in production
+// false - all disabled
+let sourceMaps;
if ('ENABLE_SOURCEMAP' in env) {
- sourceMapEnabled = env.ENABLE_SOURCEMAP === 'true';
+ sourceMaps = ['true', 'false'].includes(env.ENABLE_SOURCEMAP) ? env.ENABLE_SOURCEMAP : 'reduced';
} else {
- sourceMapEnabled = !isProduction;
+ sourceMaps = isProduction ? 'reduced' : 'true';
}
const filterCssImport = (url, ...args) => {
css: !LightningCssMinifyPlugin,
legalComments: 'none',
}),
- LightningCssMinifyPlugin && new LightningCssMinifyPlugin(),
+ LightningCssMinifyPlugin && new LightningCssMinifyPlugin({
+ sourceMap: sourceMaps === 'true',
+ }),
],
splitChunks: {
chunks: 'async',
{
loader: 'css-loader',
options: {
- sourceMap: sourceMapEnabled,
+ sourceMap: sourceMaps === 'true',
url: {filter: filterCssImport},
import: {filter: filterCssImport},
},
filename: 'css/[name].css',
chunkFilename: 'css/[name].[contenthash:8].css',
}),
- sourceMapEnabled && (new SourceMapDevToolPlugin({
+ sourceMaps !== 'false' && new SourceMapDevToolPlugin({
filename: '[file].[contenthash:8].map',
- })),
+ ...(sourceMaps === 'reduced' && {include: /^js\/index\.js$/}),
+ }),
new MonacoWebpackPlugin({
filename: 'js/monaco-[name].[contenthash:8].worker.js',
}),