如何使用Webpack捆绑puppeteer进行生产部署?

时间:2018-11-29 14:04:40

标签: typescript express webpack node-modules puppeteer

我正在用express创建一个节点API,它将使用puppeteer为给定的URL创建一个PDF。如何将应用程序与Webpack捆绑在一起进行生产?我不想在全局安装puppeteer并在要托管它的服务器中表示,也不想在服务器上调用npm install。我希望puppeteer和express与js文件一起出现。我该如何实现?

1 个答案:

答案 0 :(得分:0)

如果有人好奇我该如何解决-我将webpack与以下配置配合使用:

import webpack from 'webpack';
import path from 'path';
import nodeExternals from 'webpack-node-externals';

const config: webpack.Configuration = {
    mode: "production",
    entry: "./src/server.ts",
    target: "node",
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: "main.js"
    },
    resolve: {
        extensions: [".ts", ".js"],
      },
    devtool: "source-map",
    module: {
        rules: [
            {
                test: /\.ts$/,
                exclude: /node_modules/,
                use: {
                    loader: "ts-loader",
                    options: {
                        transpileOnly: true
                    }
                }
            }
        ],
    },
    externals: nodeExternals()
}

export default config;

在Continuous Integration服务器中,我运行以下命令:

npm install
webpack
npm ci

这里的窍门是npm ci(自npm v6起),它从node_modules中删除了devDependencies。之后,我将node_modules连同已转译的js文件一起放入部署包中