生产模式下使用Webpack打包时Swagger UI Express插件问题

6
我将swagger-ui-express插件包含在我的node express REST API中。在以生产模式打包时,使用webpack时,出现错误,例如SwaggerUIBundle未定义。没有使用webpack时,我的应用程序可以正常运行。有人可以帮我配置webpack以适用于swagger-ui-express吗?
请参见以下堆栈跟踪错误消息:Stack Trace Error Message
1个回答

13

基本上,当涉及到Webpack时,swagger-ui-express仍然存在一个已知问题。 因此,目前还没有官方修复方法。为了解决这个问题,我们将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'
        ]
    })
]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接