生产模式下 webpack 捆绑的 Swagger UI Express 插件问题

Posted

技术标签:

【中文标题】生产模式下 webpack 捆绑的 Swagger UI Express 插件问题【英文标题】:Swagger UI Express plugin issue with webpack bundling in production mode 【发布时间】:2020-09-20 00:10:34 【问题描述】:

我在我的节点express REST API 中包含了swagger-ui-express 插件。在生产模式下与webpack 捆绑时,我收到诸如SwaggerUIBundle 未定义之类的错误。没有webpack,我的应用程序运行良好。有人可以帮我配置webpackswagger-ui-express

【问题讨论】:

【参考方案1】:

基本上,当涉及到Webpack 时,swagger-ui-express 上还有一个known issue。所以仍然没有官方修复它。对于解决方法,我们将swagger-ui-expressdist 工件包含到我们的构建工件(由webpack 完成)中,并将其与我们的server.js(或您的主文件)一起部署。

你需要安装CopyWebpackPlugin

npm install copy-webpack-plugin --save-dev

并将此配置包含到您的webpack.config

node: 
    __dirname: false
,
plugins: [
    new CopyWebpackPlugin(
        patterns: [
            './node_modules/swagger-ui-dist/swagger-ui.css',
            './node_modules/swagger-ui-dist/swagger-ui-bundle.js',
            './node_modules/swagger-ui-dist/swagger-ui-standalone-preset.js',
            './node_modules/swagger-ui-dist/favicon-16x16.png',
            './node_modules/swagger-ui-dist/favicon-32x32.png'
        ]
    )
]

【讨论】:

以上是关于生产模式下 webpack 捆绑的 Swagger UI Express 插件问题的主要内容,如果未能解决你的问题,请参考以下文章

最新发布!webpack 4.0.0-alpha.0 特性

webpack:生产构建后缺少自定义样式

如何在使用 webpack 捆绑 React 时禁用严格模式

React + Webpack + Material UI 样式在生产中中断

即使在生产模式下构建,VueJS也会显示“开发模式”消息

Webpack source-map 指向 *.min.js 包,而不是生产模式下的源文件