当我用电子+ Webpack + 节点MySQL建立一个新的项目时,我的生产建设就是:
Uncaught Error: Received packet in the wrong sequence只有当我在产品构建中保留:config.devtools = 'eval'时,错误才会消失,显然这会导致更大的文件大小和一些我希望避免的性能问题。
为什么我的项目/ mysql模块在devtools设置为''时崩溃??我几乎找不到类似的报道,难道只有我一个人有这个问题吗?
webpack.config.js:
...
if (process.env.NODE_ENV === 'production') {
config.devtool = '' // <-------- mysql will throw Uncaught Error if I omit 'eval'
config.plugins.push(
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"'
}),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
)
}home.js:
<script>
var mysql = require('mysql')
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'EONIC'
})
connection.connect()
connection.query('SELECT * from products', function (err, rows, fields) {
if (err) throw err <---- here will the error happen
console.log(rows)
})
connection.end()
</script>mysql/lib/protocol/Protocol.js第272行中的错误来源:
if (!sequence[packetName]) {
var err = new Error('Received packet in the wrong sequence.');
err.code = 'PROTOCOL_INCORRECT_PACKET_SEQUENCE';
err.fatal = true;
this._delegateError(err);
return;
}发布于 2021-09-06 13:01:28
它可能与默认的Webpack最小化器中的mangle选项有关,并与Mysql相结合。
我也曾面临过同样和类似的问题,但我并没有真正地指出这一点。
关于这个问题有很多问题:
但我找到的最好的解决办法是:
optimization: {
minimizer: [new TerserPlugin({ terserOptions: { mangle: false } })] // mangle false else mysql blow ups with "PROTOCOL_INCORRECT_PACKET_SEQUENCE"
},它是mysql问题威胁中的Rudijs:https://github.com/mysqljs/mysql/issues/1655#issuecomment-484530654。
希望这能帮上忙,给我喊一声!
https://stackoverflow.com/questions/40075019
复制相似问题