node.js - selenium-webdriver [bazel-genfiles] 的电子 webpack 问题
问题描述
对于我的电子应用程序项目(使用样板文件),我想使用selenium-webdriver和chromedriver执行一些 selenium 节点命令。
问题是,当我添加模块时selenium-webdriver
,突然我的应用程序在终端和控制台中抛出错误和警告。
终端警告:
WARNING in ./node_modules/selenium-webdriver/lib/http.js 49:11-26
Critical dependency: the request of a dependency is an expression
@ ./node_modules/selenium-webdriver/http/index.js
@ ./node_modules/selenium-webdriver/index.js
@ ./src/components/playback.js
@ ./src/components/App.js
@ ./src/index.js
WARNING in ./node_modules/selenium-webdriver/lib/http.js
Module not found: Error: Can't resolve '../../../../bazel-genfiles' in
'<MY_LOCAL_DIR>/electron-react-webpack-boilerplate/node_modules/selenium-webdriver/lib'
@ ./node_modules/selenium-webdriver/lib/http.js
@ ./node_modules/selenium-webdriver/http/index.js
@ ./node_modules/selenium-webdriver/index.js
@ ./src/components/playback.js
@ ./src/components/App.js
@ ./src/index.js
应用程序错误:
Error: Cannot find module 'undefined'
at webpackMissingModule (http.js:53)
at requireAtom (http.js:53)
at Object../node_modules/selenium-webdriver/lib/http.js (http.js:35)
at __webpack_require__ (bootstrap:685)
at fn (bootstrap:59)
at Object../node_modules/selenium-webdriver/http/index.js (index.js:29)
at __webpack_require__ (bootstrap:685)
at fn (bootstrap:59)
at Object../node_modules/selenium-webdriver/index.js (index.js:25)
at __webpack_require__ (bootstrap:685)
Uncaught Error: Failed to import atoms module ./atoms/get-attribute.js.
If running in dev mode, you need to run
`bazel build //javascript/node/selenium-webdriver/lib/atoms:get-attribute.js`
from the projectroot: Error: Cannot find module './atoms/get-attribute.js'
at requireAtom (http.js:56)
at Object../node_modules/selenium-webdriver/lib/http.js (http.js:35)
at __webpack_require__ (bootstrap:685)
at fn (bootstrap:59)
at Object../node_modules/selenium-webdriver/http/index.js (index.js:29)
at __webpack_require__ (bootstrap:685)
at fn (bootstrap:59)
at Object../node_modules/selenium-webdriver/index.js (index.js:25)
at __webpack_require__ (bootstrap:685)
at fn (bootstrap:59)
问题之所以发生是因为 webpack 只是因为我能够从电子快速启动代码中执行两个所需的库
webpack 配置如下:
const webpack = require('webpack')
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { spawn } = require('child_process')
const defaultInclude = path.resolve(__dirname, 'src')
module.exports = {
module: {
rules: [
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
},
{
test: /\.(png|jpe?g|gif|svg|eot|ttf|woff|woff2)$/,
loader: 'url-loader',
options: {
limit: 8192,
},
},
{
test: /\.(js|jsx)$/,
loader: "babel-loader",
exclude: /node_modules/
},
{
test: /\.(jpe?g|png|gif)$/,
use: [{ loader: 'file-loader?name=img/[name]__[hash:base64:5].[ext]' }],
include: defaultInclude
}
]
},
target: 'node',
plugins: [
new HtmlWebpackPlugin(),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('development')
})
],
devtool: 'cheap-source-map',
devServer: {
contentBase: path.resolve(__dirname, 'dist'),
stats: {
colors: true,
chunks: false,
children: false
},
before() {
spawn(
'electron',
['.'],
{ shell: true, env: process.env, stdio: 'inherit' }
)
.on('close', code => process.exit(0))
.on('error', spawnError => console.error(spawnError))
}
}
}
解决方案
推荐阅读
- node.js - 当 1.0.145 是最新版本时,package.json 依赖项不会将 ^0.0.130 更新为 ^0.0.145
- java - 如何在java中更新txt文件
- apache-kafka - Kafka kafka-producer-perf-test.sh NetworkException 在收到响应之前服务器断开连接
- google-app-maker - Google AppMaker 中的下载功能
- php - PHP SQL 表单 - 如何将值传递给下一个 Select
- c# - word文件(doc、docx)加解密后损坏
- javascript - 查找输入集的所有组合
- javascript - NightmareJS:“无法在 'Document' 上执行 'querySelector':'#LINK1$1' 不是有效的选择器。”
- node.js - Webpack 3.3 & NodeJs 8.1 跨文件继承给 TypeError?
- ethereum - What network does truffle migrate to as default when the config has 2 networks?