typescript - 如何使用 webpack 捆绑 puppeteer 进行生产部署?

标签 typescript express webpack node-modules puppeteer

我正在创建一个带有 express 的节点 API,它将使用 puppeteer 为给定的 url 创建一个 PDF。如何将我的应用程序与 webpack 捆绑在一起进行生产?我不想在我将托管它的服务器中全局安装 puppeteer 和 express,我不想调用 npm install在服务器上。我希望 puppeteer 和 express 与 js 文件一起出现。我怎样才能做到这一点?

最佳答案

如果有人好奇我是如何解决这个问题的 - 我使用 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;

在持续集成服务器中,我运行以下命令:
npm install
webpack
npm ci

这里的诀窍是 npm ci (从 npm v6 开始)从 node_modules 中删除了 devDependencies .之后我包括 node_modules到部署包连同转译 js文件

关于typescript - 如何使用 webpack 捆绑 puppeteer 进行生产部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53540795/

相关文章:

javascript - 如何选择元素中的所有文本?

node.js - 在 updateOne() 之后获取更新值

node.js - 如何获取向 Heroku 上运行的 Node 服务器发送 GET 的服务器的 IP?

webpack-dev-server 构建和重建非常慢

使用 WebPack gulp 。哪个应该构建我的咖啡/ Jade 等?

reactjs - 无法使用 Typescript 中的 React Hook 在 Ag-Grid 中获取 gridApi

typescript - 无法使用选项 'noEmit' 指定选项 'incremental'

typescript - Angular 2 - 导入外部传单 typescript 库

javascript - 如何访问server.js文件之外的应用程序?

reactjs - 在 React 和 Webpack 项目上从 "babel-preset-es2015"转换到 "babel-preset-env"时出现问题