如何设置VSCode来调试webpack捆绑的nodejs服务器

m0t*_*ive 6 javascript node.js webpack visual-studio-code

我有一个nodejs express应用程序,我试图捆绑webpack 4(加上babel 7.1.0).我已经按照这两篇文章中的一些设置进行了操作:

我可以在捆绑后构建和运行服务器,但我希望能够使用VS Code的调试环境对其进行调试.

我尝试了以下webpack和vscode配置的组合,但它没有设置断点或让我进入代码.

.vscode/launch.json

{
    "type": "node",
    "request": "launch",
    "name": "bundle-server.js",
    "program": "${workspaceFolder}\\bundle-server.js",
    "sourceMaps": true,
    "smartStep": true,
}
Run Code Online (Sandbox Code Playgroud)

的WebPack-server.config.js

const path = require('path');
const nodeExternals = require('webpack-node-externals');

module.exports = {
    target: "node",
    entry: "./server.js",
    output: {
        path: path.resolve(__dirname, "./"),
        filename: "bundle-server.js",
    },
    module: {
        rules: [
            {
                test: /\.jsx?$/,
                loader: "babel-loader"
            }
        ],
    },
    externals: [nodeExternals()],
    devtool: 'inline-source-map',
};
Run Code Online (Sandbox Code Playgroud)

我错过了什么?甚至可以直接从VSCode调试吗?我希望能够跨越原始源文件,这样我就可以进行快速的debug-edit-rerun循环.


似乎与此相关:使用Visual Studio Code调试webpack捆绑节点ts.

Nav*_*uja 3

在您的启动配置中,您提供 webpack 的输出文件作为program调试。

构建: 您可以使用program作为 webpack 运行程序的路径。前任:

"program": "${workspaceFolder}/node_modules/webpack/bin/webpack.js" // Or CLI
Run Code Online (Sandbox Code Playgroud)

然后您应该提供该文件作为您想要使用 webpack 运行的参数。前任:

"args": [
   "--config", "./some/dir/webpack.config.js"
]
Run Code Online (Sandbox Code Playgroud)

跑步:

使用不同的程序执行相同的过程

"program": "${workspaceFolder}/node_modules/webpack-dev-server/bin/webpack-dev-server",
"args": [
    "--config",
    "webpack-server.config.js",
    "--hot",
    "--progress"
]
Run Code Online (Sandbox Code Playgroud)