我的主机的防火墙不允许连接到互联网。
所以 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/