首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack生产包错误,开发包工作精细。

Webpack生产包错误,开发包工作精细。
EN

Stack Overflow用户
提问于 2022-05-10 16:09:03
回答 1查看 227关注 0票数 1

在开发节点api时,我在与webpack构建产品包时遇到了一个问题。在webpack配置中,如果模式被设置为“发展”,那么一切都很好。如果将模式设置为“production”,则运行节点bundle.js会给我带来错误,这说明不了多少。什么是问题,或者我应该如何调试它。

代码语言:javascript
复制
Error
    at c.<anonymous> (/Users/sten/Sites/Projects/Farmi/API/New/dist/bundle.js:2:747025)
    at c.<anonymous> (/Users/sten/Sites/Projects/Farmi/API/New/dist/bundle.js:2:217821)
    at c._callback (/Users/sten/Sites/Projects/Farmi/API/New/dist/bundle.js:2:217609)
    at c.l.end (/Users/sten/Sites/Projects/Farmi/API/New/dist/bundle.js:2:434863)
    at /Users/sten/Sites/Projects/Farmi/API/New/dist/bundle.js:2:255978
    at Array.forEach (<anonymous>)
    at /Users/sten/Sites/Projects/Farmi/API/New/dist/bundle.js:2:255955
    at processTicksAndRejections (node:internal/process/task_queues:78:11)

我的webpack制作配置:

代码语言:javascript
复制
const path = require('path');

module.exports = {
  mode: 'production',
  target: 'node',
  entry: './src/index.js',
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: 'babel-loader',
      },
    ],
  },
  output: {
    path: path.resolve(__dirname, 'dist/'),
    filename: 'bundle.js',
  },
};

package.json:

代码语言:javascript
复制
{
  "name": "API",
  "version": "1.0.0",
  "description": "API",
  "main": "index.js",
  "author": "API",
  "license": "MIT",
  "dependencies": {
    "@koa/router": "^10.1.1",
    "axios": "^0.27.2",
    "file-extension": "^4.0.5",
    "get-4byte-chars": "^0.1.0",
    "koa": "^2.13.4",
    "lodash": "^4.17.21",
    "mime-types": "^2.1.35",
    "mysql": "^2.18.1",
    "pm3": "^0.0.0",
    "unique-filename": "^1.1.1",
    "winston": "^3.7.2"
  },
  "devDependencies": {
    "@babel/core": "^7.17.9",
    "@babel/plugin-transform-runtime": "^7.17.10",
    "@babel/preset-env": "^7.16.11",
    "babel-loader": "^8.2.5",
    "nodemon-webpack-plugin": "^4.7.1",
    "webpack": "^5.72.1",
    "webpack-cli": "^4.9.2"
  },
  "scripts": {
    "dev": "webpack --config=webpack.config.dev.js --watch",
    "build": "webpack --config=webpack.config.prod.js",
    "start": "node ./dist/bundle.js"
  }
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-11 06:19:48

通过消除代码块发现问题。看来webpack在缩小目标时打破了Node的MySQL包。

这里有一个参考资料:

https://github.com/serverless/serverless/issues/5946

移除建议的缩小,它可以工作。

要从mysql获得错误消息,我必须将代码包装到try / catch块中,即使我拒绝错误的承诺,也应该被调用函数_dbQuery的try / catch块捕获.还是不?

原文:

代码语言:javascript
复制
const _dbQuery = async (queryString, values = null) => {
  return new Promise((resolve, reject) => {
    const connection = mysql.createConnection({
      ...configuration.mysql,
    });

    connection.connect((err) => {
      if (err) reject(new Error(err.sqlMessage));
    });

    if (values !== null) {
      connection.query(queryString, values, (err, res, fields) => {
        if (err) reject(new Error(err.sqlMessage));
        resolve(res);
        connection.end();
      });
    } else {
      connection.query(queryString, (err, res, fields) => {
        if (err) reject(err.sqlMessage);
        resolve(res);
        connection.end();
      });
    }
  })
};

修改后给出了错误PROTOCOL_INCORRECT_PACKET_SEQUENCE:

代码语言:javascript
复制
const _dbQuery = async (queryString, values = null) => {
  return new Promise((resolve, reject) => {
    try {
      const connection = mysql.createConnection({
        ...configuration.mysql,
      });

      connection.connect((err) => {
        if (err) reject(new Error(err.sqlMessage));
      });

      if (values !== null) {
        connection.query(queryString, values, (err, res, fields) => {
          if (err) reject(new Error(err.sqlMessage));
          resolve(res);
          connection.end();
        });
      } else {
        connection.query(queryString, (err, res, fields) => {
          if (err) reject(new Error(err.sqlMessage));
          resolve(res);
          connection.end();
        });
      }
    } catch (err) {
      throw err;
    }
  });
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72189682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档