typescript - Bagaimana untuk membundel puppeteer untuk penerapan produksi menggunakan webpack?
Saya sedang membuat satu API node dengan express yang akan menghasilkan PDF menggunakan puppeteer untuk URL yang diberikan. Bagaimanakah saya boleh membungkus aplikasi saya untuk pengeluaran dengan webpack? Saya tidak mahu memasang puppeteer dan express secara global di server di mana saya akan menghosnya dan saya tidak mahu memanggil npm install di server. Saya mahu puppeteer dan express disertakan bersama fail js. Bagaimanakah saya boleh mencapai itu?
Jawapan #1
Jika ada yang ingin tahu bagaimana saya menyelesaikan ini - saya menggunakan webpack dengan konfigurasi berikut:
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;
Dan di pelayan Integrasi Berterusan, saya menjalankan arahan berikut:
npm install
webpack
npm ci
Trik di sini adalah npm ci (sejak npm v6) yang membuang devDependencies daripada node_modules. Selepas itu saya menyertakan node_modules ke dalam pakej penghantaran bersama dengan fail js yang telah ditranspilasi
