Seb*_*ian 8 npm typescript reactjs next.js puppeteer
我有我的项目,它工作完美,在 app/api/getItem/route.ts 中有一个功能,该功能工作得很好,并且使用 import puppeteer from 'puppeteer',但我在卸载未使用的软件包时意外运行了 npm uninstall puppeteer ,但重新安装我一意识到这一点。我的路线现在不起作用,并且不断收到以下错误:
Server Error
TypeError: oe is not a function
This error happened while generating the page. Any console logs will be displayed in the terminal window.
Call Stack
oe
node_modules/@puppeteer/browsers/node_modules/yargs/build/index.cjs (1:61375)
(sc_server)/./node_modules/@puppeteer/browsers/node_modules/yargs/build/index.cjs
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (1725:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/@puppeteer/browsers/node_modules/yargs/yargs.mjs (5:74)
(sc_server)/./node_modules/@puppeteer/browsers/node_modules/yargs/yargs.mjs
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (2044:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/@puppeteer/browsers/lib/esm/CLI.js (10:69)
(sc_server)/./node_modules/@puppeteer/browsers/lib/esm/CLI.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (1736:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/@puppeteer/browsers/lib/esm/main.js (26:65)
(sc_server)/./node_modules/@puppeteer/browsers/lib/esm/main.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (1890:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/node/ChromeLauncher.js (7:77)
(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/node/ChromeLauncher.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (2924:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/node/node.js (11:76)
(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/node/node.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (2990:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/puppeteer-core.js (140:71)
(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/puppeteer-core.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3001:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/puppeteer/lib/esm/puppeteer/puppeteer.js (138:99)
(sc_server)/./node_modules/puppeteer/lib/esm/puppeteer/puppeteer.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3133:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./app/api/getItem/route.ts (5:67)
(sc_server)/./app/api/getItem/route.ts
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (344:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js (13:147)
(sc_server)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2FgetItem%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2FgetItem%2Froute.ts&appDir=%2FUsers%2Fsebastianrubina%2FDocuments%2Fwebdev%2Fprojects%2Faffiliate-links%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsebastianrubina%2FDocuments%2Fwebdev%2Fprojects%2Faffiliate-links&isDev=true&tsconfigPath=tsconfig.json&assetPrefix=!
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (333:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
__webpack_exec__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3187:39)
<unknown>
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3188:28)
Object.<anonymous>
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3191:3)
Module._compile
node:internal/modules/cjs/loader (1159:14)
Module._extensions..js
node:internal/modules/cjs/loader (1213:10)
Module.load
node:internal/modules/cjs/loader (1037:32)
Module._load
node:internal/modules/cjs/loader (878:12)
Module.require
node:internal/modules/cjs/loader (1061:19)
require
node:internal/modules/cjs/helpers (103:18)
Object.requirePage
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/node_modules/next/dist/server/require.js (88:12)
<unknown>
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/node_modules/next/dist/server/load-components.js (49:73)
async Object.loadComponentsImpl [as loadComponents]
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/node_modules/next/dist/server/load-components.js (49:26)
async DevServer.findPageComponentsImpl
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/node_modules/next/dist/server/next-server.js (600:36)
Run Code Online (Sandbox Code Playgroud)
这是我的 api 路线:
Server Error
TypeError: oe is not a function
This error happened while generating the page. Any console logs will be displayed in the terminal window.
Call Stack
oe
node_modules/@puppeteer/browsers/node_modules/yargs/build/index.cjs (1:61375)
(sc_server)/./node_modules/@puppeteer/browsers/node_modules/yargs/build/index.cjs
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (1725:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/@puppeteer/browsers/node_modules/yargs/yargs.mjs (5:74)
(sc_server)/./node_modules/@puppeteer/browsers/node_modules/yargs/yargs.mjs
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (2044:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/@puppeteer/browsers/lib/esm/CLI.js (10:69)
(sc_server)/./node_modules/@puppeteer/browsers/lib/esm/CLI.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (1736:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/@puppeteer/browsers/lib/esm/main.js (26:65)
(sc_server)/./node_modules/@puppeteer/browsers/lib/esm/main.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (1890:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/node/ChromeLauncher.js (7:77)
(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/node/ChromeLauncher.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (2924:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/node/node.js (11:76)
(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/node/node.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (2990:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/puppeteer-core.js (140:71)
(sc_server)/./node_modules/puppeteer-core/lib/esm/puppeteer/puppeteer-core.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3001:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/puppeteer/lib/esm/puppeteer/puppeteer.js (138:99)
(sc_server)/./node_modules/puppeteer/lib/esm/puppeteer/puppeteer.js
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3133:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./app/api/getItem/route.ts (5:67)
(sc_server)/./app/api/getItem/route.ts
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (344:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
eval
webpack-internal:///(sc_server)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js (13:147)
(sc_server)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2FgetItem%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2FgetItem%2Froute.ts&appDir=%2FUsers%2Fsebastianrubina%2FDocuments%2Fwebdev%2Fprojects%2Faffiliate-links%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsebastianrubina%2FDocuments%2Fwebdev%2Fprojects%2Faffiliate-links&isDev=true&tsconfigPath=tsconfig.json&assetPrefix=!
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (333:1)
__webpack_require__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/webpack-runtime.js (33:43)
__webpack_exec__
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3187:39)
<unknown>
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3188:28)
Object.<anonymous>
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/.next/server/app/api/getItem/route.js (3191:3)
Module._compile
node:internal/modules/cjs/loader (1159:14)
Module._extensions..js
node:internal/modules/cjs/loader (1213:10)
Module.load
node:internal/modules/cjs/loader (1037:32)
Module._load
node:internal/modules/cjs/loader (878:12)
Module.require
node:internal/modules/cjs/loader (1061:19)
require
node:internal/modules/cjs/helpers (103:18)
Object.requirePage
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/node_modules/next/dist/server/require.js (88:12)
<unknown>
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/node_modules/next/dist/server/load-components.js (49:73)
async Object.loadComponentsImpl [as loadComponents]
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/node_modules/next/dist/server/load-components.js (49:26)
async DevServer.findPageComponentsImpl
file:///Users/sebastianrubina/Documents/webdev/projects/affiliate-links/node_modules/next/dist/server/next-server.js (600:36)
Run Code Online (Sandbox Code Playgroud)
我评论了与 puppeteer 相关的所有内容,现在该功能可以运行,为什么会这样?
我尝试使用 --turbo 运行,尝试删除 node_modules 和 package-lock.json 并重新运行 npm install,但没有成功。
这是我的 package.json:
import { NextApiResponse } from "next";
// import puppeteer from "puppeteer";
export async function POST(request: Request, response: NextApiResponse) {
// const body = request.body;
const req = await request.json();
const url = req.amazonUrl;
console.log("url", url);
// const browser = await puppeteer.launch({
// headless: true,
// defaultViewport: null,
// });
// const page = await browser.newPage();
// await page.goto(url, {
// waitUntil: "domcontentloaded",
// });
// const item = await page.evaluate(() => {
// const title = document.querySelector("#productTitle")?.innerHTML.trim();
// const imageContainer = document.querySelector(".imgTagWrapper");
// const imageUrl = imageContainer?.querySelector("img")?.src;
// const rating = document.querySelector(".a-icon-alt")?.textContent?.trim();
// let price = document
// .querySelector("#sns-base-price")
// ?.textContent?.trim()
// .slice(1)
// .replace(",", "");
// if (!price) {
// price = document
// .querySelector(".a-price-whole")
// ?.textContent?.trim()
// .replace(",", "");
// }
// console.log("ITEM: " + item);
// return { title, price, imageUrl, rating };
// });
// return new Response(JSON.stringify(item));
return new Response(
JSON.stringify({
title: "hi",
price: 10,
imageUrl: "https://www.google.com",
rating: 3,
})
);
}
Run Code Online (Sandbox Code Playgroud)
我的npm版本是8.19.2,我的node版本是18.12.1。
当我取消注释该const browser = await puppeteer.launch...行时,问题就会发生。