在 Vue + Webpack 中使用 Puppeteer (Headless Chrome) 时出现依赖错误
Dependency errors when using Puppeteer (Headless Chrome) with Vue + Webpack
我正在使用这两个 libraries/templates:
https://github.com/GoogleChrome/puppeteer(无头Chrome)
https://github.com/vuejs-templates/pwa(使用 Webpack 和 Express 的 Vue 模板)。
这是代码:
export default {
mounted () {
const puppeteer = require('puppeteer')
;(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto('https://www.google.com/search?tbm=bks&q=%22this+is%22')
const result = await page.evaluate(() => {
const stats = document.querySelector('#resultStats')
return stats.textContent
})
console.log(result)
await browser.close()
})()
}
}
我做了很多次npm install
,但我仍然有依赖错误:
These dependencies were not found:
- child_process in ./node_modules/puppeteer/lib/Launcher.js, ./node_modules/puppeteer/node6/Launcher.js
- fs in ./node_modules/extract-zip/index.js, ./node_modules/extract-zip/node_modules/mkdirp/index.js and 18 others
To install them, you can run: npm install --save child_process fs
Listening at http://localhost:8080
节点:我也做了很多次npm install --save child_process fs
。同样的错误。
这似乎是 webpack 对内置节点模块的抱怨。尝试将以下内容添加到您的 webpack 配置中...
target: 'node'
In the example above, using node webpack will compile for usage in a Node.js-like environment (uses Node.js require to load chunks and not touch any built in modules like fs or path).
或者,您可以使用以下方法解决此问题...
node: {
fs: 'empty',
child_process: 'empty'
}
您是否尝试捆绑 puppeteer 以便在浏览器中使用?这是一个特定于节点的模块,我怀疑它能否在前端运行。相反,您可能会尝试了解为什么要捆绑此文件,以及您是否打算这样做。
我正在使用这两个 libraries/templates:
https://github.com/GoogleChrome/puppeteer(无头Chrome)
https://github.com/vuejs-templates/pwa(使用 Webpack 和 Express 的 Vue 模板)。
这是代码:
export default {
mounted () {
const puppeteer = require('puppeteer')
;(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto('https://www.google.com/search?tbm=bks&q=%22this+is%22')
const result = await page.evaluate(() => {
const stats = document.querySelector('#resultStats')
return stats.textContent
})
console.log(result)
await browser.close()
})()
}
}
我做了很多次npm install
,但我仍然有依赖错误:
These dependencies were not found:
- child_process in ./node_modules/puppeteer/lib/Launcher.js, ./node_modules/puppeteer/node6/Launcher.js
- fs in ./node_modules/extract-zip/index.js, ./node_modules/extract-zip/node_modules/mkdirp/index.js and 18 others
To install them, you can run: npm install --save child_process fs Listening at http://localhost:8080
节点:我也做了很多次npm install --save child_process fs
。同样的错误。
这似乎是 webpack 对内置节点模块的抱怨。尝试将以下内容添加到您的 webpack 配置中...
target: 'node'
In the example above, using node webpack will compile for usage in a Node.js-like environment (uses Node.js require to load chunks and not touch any built in modules like fs or path).
或者,您可以使用以下方法解决此问题...
node: {
fs: 'empty',
child_process: 'empty'
}
您是否尝试捆绑 puppeteer 以便在浏览器中使用?这是一个特定于节点的模块,我怀疑它能否在前端运行。相反,您可能会尝试了解为什么要捆绑此文件,以及您是否打算这样做。