javascript - 如何离线安装 Puppeteer

标签 javascript node.js puppeteer

我的主机的防火墙不允许连接到互联网。

所以 npm install 在那里不起作用。

npm ERR! network request to https://registry.npmjs.org/Puppeteer failed

那么如何在这台机器上安装 Puppeteer 呢?有可用的独立安装程序吗?

最佳答案

每当我在路上或者无法访问互联网但想在远处使用一些node_modules时,我都会执行以下操作。

解决这个问题的两种方法:

  • 在可以访问互联网的情况下创建项目并安装所有依赖项,以便随时使用它。
  • 仅安装特定依赖项并复制 node_modules 和 package.json。

我将讨论第二个,因为这两个选项基本上是相同的。

首先,找到一台可以访问互联网的计算机。然后创建一个空白的nodeJS项目,专门用于puppeteer。复制整个node_modules 文件夹以供将来使用,而不仅仅是puppeteer 文件夹。请注意,它永远不会更新,并且版本始终是固定的。如果您想更新,则需要再次执行类似的步骤。

这是步骤,

➜  mkdir puppeteer-copy
➜  cd puppeteer-copy 
➜  yarn add puppeteer

package.json 文件中,您将看到一个列为依赖项的 puppeteer,请确保在使用此复制的包时将其添加到您的程序中。如果需要,您可以只复制该行。

➜  ls
node_modules  package.json  yarn.lock
➜  cat package.json 
{
  "dependencies": {
    "puppeteer": "^2.0.0"
  }
}

您需要整个node_modules文件夹的原因是因为puppeteer使用了一些依赖项,

➜  node_modules ls
agent-base       es6-promisify      minimatch             puppeteer
async-limiter    extract-zip        minimist              readable-stream
balanced-match   fd-slicer          mkdirp                rimraf
brace-expansion  fs.realpath        ms                    safe-buffer
buffer-from      glob               once                  string_decoder
concat-map       https-proxy-agent  path-is-absolute      typedarray
concat-stream    inflight           pend                  util-deprecate
core-util-is     inherits           process-nextick-args  wrappy
debug            isarray            progress              ws
es6-promise      mime               proxy-from-env        yauzl

关于javascript - 如何离线安装 Puppeteer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58939601/

相关文章:

javascript - jquery/javascript 中的多重淡入淡出

javascript - 动态使用 Angular6 Mat-Table

javascript - 如何从浏览器向 Node.js 服务器发送大文件?

javascript - 关键 checkin 对象

javascript - 使用 <form> 绑定(bind)数组元素的两种方式

sql - 在原始查询中使用双引号和单引号时,Sequelize 会提示 "misuse of aggregate: SUM()"

node.js - 如何在生产服务器上部署React Frontend + Node Backend?

javascript - Puppeteer page.evaluate 未正确返回

angular - Headless Chrome 完成执行 Karma 单元测试时,Docker 任务失败

javascript - 如何在 Puppeteer 中单击并按住