导入redis时“无法解析绑定中的'fs'”?

时间:2019-07-28 11:01:17

标签: node.js webpack redis fs node-redis

我正在尝试使用redis模块在​​redis表中查找键值。但是,非常导入本身(import redis from 'redis')引发以下错误:

  

无法编译。

     

./ node_modules / bindings / bindings.js找不到模块:无法解析   '/ home / ubuntu / proost / web / node_modules / bindings'中的'fs'

     
    

发生构建错误错误:>由于webpack错误,构建失败         在构建时(/home/ubuntu/proost/web/node_modules/next/dist/build/index.js:6:847)     错误命令失败,退出代码为1。

  

我尝试阅读该模块的文档,但是找不到与此问题有关的任何参考。值得一提的是,我的next.config.js文件(Webpack的自定义NextJS扩展)看起来像这样:

/* eslint-disable no-unused-vars */

import path from 'path';
import glob from 'glob';
import ExtractTextPlugin from 'extract-text-webpack-plugin';
import webpack from 'webpack';
import dotenv from 'dotenv';
import OptimizeCSSAssetsPlugin from 'optimize-css-assets-webpack-plugin';
import withSass from '@zeit/next-sass';
import withCSS from '@zeit/next-css';
import withPurgeCss from 'next-purgecss';

// dotenv.config();
const { parsed: localEnv } = dotenv.config();

module.exports = withCSS(withSass(withPurgeCss({
  distDir: '.build',
  purgeCssPaths: [
    'pages/**/*',
    'components/**/*',
  ],
  webpack: (config, { dev, isServer }) => {
    if (isServer) {
      return config;
    }
    config.plugins.push(
      new webpack.DefinePlugin({
        'process.env': {
          BASE_URL: JSON.stringify(process.env.BASE_URL),
          REDIS_HOST: JSON.stringify(process.env.REDIS_HOST),
          REDIS_PORT: JSON.stringify(process.env.REDIS_PORT),
        },
      }),
      new webpack.EnvironmentPlugin(localEnv),
      new webpack.optimize.LimitChunkCountPlugin({
        maxChunks: 1,
      }),
    );
    config.optimization.minimizer.push(
      new OptimizeCSSAssetsPlugin({}),
    );
    return config;
  },
})));

有什么办法解决此问题?

1 个答案:

答案 0 :(得分:0)

在我看来,您正在尝试使用Webpack构建JS捆绑包,该捆绑包应在浏览器的JS中使用。但是您不能将redis软件包用于浏览器的JS,只能在Node.js中运行。