首页 > 解决方案 > 为 Chrome 扩展捆绑 Puppeteer 时引发错误

问题描述

我目前正在尝试按照说明捆绑 puppeteer 以与我的 Chrome 扩展项目集成,在该项目中,我将在网页上抓取位置页面并使用传单将其显示在地图上。但是,我一直在设置过程中遇到麻烦。目前我被困在过程的第 2 步和第 3 步。在由它返回的命令创建npm install\puppeteer文件夹中运行时。git clone https://github.com/puppeteer/puppeteer && cd puppeteer

Puppeteer: Compiling TypeScript...
Error running TypeScript Error: Command failed: npm run tsc
'rm' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! puppeteer@5.2.1-post clean-lib: `rm -rf lib`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the puppeteer@5.2.1-post clean-lib script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\username\AppData\Roaming\npm-cache\_logs\2020-08-31T21_57_06_630Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! puppeteer@5.2.1-post tsc: `npm run clean-lib && tsc --version && npm run tsc-cjs && npm run tsc-esm`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the puppeteer@5.2.1-post tsc script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\username\AppData\Roaming\npm-cache\_logs\2020-08-31T21_57_06_646Z-debug.log

at ChildProcess.exithandler (child_process.js:303:12)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5) {
  killed: false,
  code: 1,
  signal: null,
  cmd: 'npm run tsc',
  stdout: '\n' +
'> puppeteer@5.2.1-post tsc C:\\Users\\username\\node_modules\\puppeteer\n' +
'> npm run clean-lib && tsc --version && npm run tsc-cjs && npm run tsc-esm\n' +
'\n' +
'\n' +
'> puppeteer@5.2.1-post clean-lib C:\\Users\\username\\node_modules\\puppeteer\n' +
'> rm -rf lib\n' +
'\n',
  stderr: "'rm' is not recognized as an internal or external command,\r\n" +
    'operable program or batch file.\r\n' +
    'npm ERR! code ELIFECYCLE\n' +
    'npm ERR! errno 1\n' +
    'npm ERR! puppeteer@5.2.1-post clean-lib: `rm -rf lib`\n' +
    'npm ERR! Exit status 1\n' +
    'npm ERR! \n' +
    'npm ERR! Failed at the puppeteer@5.2.1-post clean-lib script.\n' +
    'npm ERR! This is probably not a problem with npm. There is likely additional logging output above.\n' +
    '\n' +
    'npm ERR! A complete log of this run can be found in:\n' +
    'npm ERR!     C:\\Users\\username\\AppData\\Roaming\\npm-cache\\_logs\\2020-08-31T21_57_06_630debug.log\n' +
'npm ERR! code ELIFECYCLE\n' +
'npm ERR! errno 1\n' +
'npm ERR! puppeteer@5.2.1-post tsc: `npm run clean-lib && tsc --version && npm run tsc-cjs && npm run tsc-esm`\n' +
'npm ERR! Exit status 1\n' +
'npm ERR! \n' +
'npm ERR! Failed at the puppeteer@5.2.1-post tsc script.\n' +
'npm ERR! This is probably not a problem with npm. There is likely additional logging output above.\n' +
'\n' +
'npm ERR! A complete log of this run can be found in:\n' +
'npm ERR!     C:\\Users\\username\\AppData\\Roaming\\npm-cache\\_logs\\2020-08-31T21_57_06_646Z-debug.log\n'
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! puppeteer@5.2.1-post install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the puppeteer@5.2.1-post install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

还有什么时候npm run bundle运行它说missing script:bundle.js

我在 Windows 10 上运行所有这些,我安装了 Node v12.18.3 和 npm v6.14.6。

我已经安装了 browserify,但是我还没有使用它。我还需要设置什么吗?此外,如果在 Chrome 扩展程序上有更好的网络抓取替代方案,请告诉我。

感谢您的时间!

标签: installationgoogle-chrome-extensionpuppeteer

解决方案


git clone https://github.com/puppeteer/puppeteer当您执行此命令时,它将下载最新版本的 Puppeteer。

出现问题是因为最新版本的 Puppeteer 缺少一些旧命令和文件。这在制作教程时就已经存在了。


更多解释:

  • Typescript Error:
    You need to install typescript in npm I found it here

  • 捆绑错误:
    这是package.json文件版本 5.5.0 的屏幕截图:
    package.json 版本 5.5.0

    这是package.json文件版本 2.1.1 的屏幕截图:
    package.json 版本 2.1.0

    您将"scripts":{"bundle":"bundle": "npx browserify -r ./install.js:puppeteer -o utils/browser/puppeteer-web.js"}在新版本。当您尝试执行npm run bundle时,它会发现什么都没有执行。这是缺少东西的一个小例子。总的来说,当然这两个版本之间存在很大差异。


解决方案:

我相信这是一个临时解决方案,因为我们缺少很多更新。另外我正在研究另一种使用捆绑的最新版本的解决方案。一旦我到达它,我将更新我的分析器。

  • 所以你必须手动下载旧版本的 Puppeteer:
    下载 Puppeteer 版本 2.1.0
  • 下载此版本后,转到其文件夹并执行命令:
    1. npm install -g typescript
    2. npm install
    3. npm run bundle

推荐阅读