Javascript 无法生成链接了本地节点模块的项目

Javascript 无法生成链接了本地节点模块的项目,javascript,node.js,reactjs,webpack,node-modules,Javascript,Node.js,Reactjs,Webpack,Node Modules,我的链接节点模块有问题。所以,我正在开发基于Webpack4的带有孔设置的react应用程序。除此之外,我正在构建自己的节点模块,该模块将在多个应用程序之间共享。我用ES6编写模块,并使用babel进行传输。问题是,一旦我想用导入的模块启动react应用程序,我会出现以下错误: Uncaught错误:模块构建失败(来自./node_modules/eslint loader/index.js): 错误:未找到ESLint配置。 在模块中设置eslinter后,它会报告另一个问题(react应用程

我的链接节点模块有问题。所以,我正在开发基于Webpack4的带有孔设置的react应用程序。除此之外,我正在构建自己的节点模块,该模块将在多个应用程序之间共享。我用ES6编写模块,并使用babel进行传输。问题是,一旦我想用导入的模块启动react应用程序,我会出现以下错误:

Uncaught错误:模块构建失败(来自./node_modules/eslint loader/index.js):
错误:未找到ESLint配置。

在模块中设置eslinter后,它会报告另一个问题(react应用程序中的eslinter似乎正试图在链接节点模块上运行,而节点模块显然不应该这样做)

仅当模块链接时,才会出现问题。一旦我将模块直接放到
节点\u modules
目录(它没有链接),问题就会消失,一切正常。那么,您知道如何从webpack配置中排除链接的节点模块吗? 这是我的网页配置:

const Dotenv = require('dotenv-webpack');
const HtmlWebPackPlugin = require('html-webpack-plugin');

const htmlPlugin = new HtmlWebPackPlugin({
    template: './src/index.html',
    filename: './index.html',
});

const path = require('path');

module.exports = {
    entry: [
        'babel-polyfill',
        './src/index.jsx',
    ],
    resolve: {
        extensions: ['.js', '.jsx'],
        alias: {
            modules: path.resolve(__dirname, 'src/modules/'),
            routes: path.resolve(__dirname, 'src/routes/'),
            lib: path.resolve(__dirname, 'src/lib/'),
            src: path.resolve(__dirname, 'src/'),
        },
    },
    module: {
        rules: [
            {
                test: /\.jsx?$/,
                exclude: /node_modules/,
                use: [
                    'babel-loader',
                    'eslint-loader',
                ],
            },
            {
                test: /\.s?css$/,
                use: [
                    'style-loader', // creates style nodes from JS strings
                    'css-loader', // translates CSS into CommonJS
                    'sass-loader', // compiles Sass to CSS, using Node Sass by default
                ],
            },
            {
                test: /\.(ttf|woff|woff2)$/,
                use: [
                    {
                        loader: 'file-loader',
                        options: {
                            outputPath: 'public/fonts',
                            name: '[name]-[hash].[ext]',
                        },
                    },
                ],
            },
        ],
    },
    devServer: {
        historyApiFallback: true,
    },
    plugins: [htmlPlugin, new Dotenv()],
};
这是react应用程序中我的
.eslintrc
文件:

{
  "extends": "airbnb",
  "parser": "babel-eslint",
  "env": {
    "browser": true,
    "jest": true
  },
  "rules": {
    "class-methods-use-this": 0,
    "global-require": 0,
    "import/no-named-as-default": 0,
    "indent": ["error", 4],
    "jsx-a11y/label-has-associated-control": [ 2, {
      "controlComponents": ["Input"],
      "depth": 3,
    }],
    "jsx-a11y/label-has-for": 0,
    "max-len": ["error", { "code": 120 }],
    "react/jsx-indent": ["error", 4],
    "react/jsx-indent-props": ["error", 4],
    "react/prefer-stateless-function": ["off"],
    "no-underscore-dangle": 0,
    "import/no-extraneous-dependencies": ["error", { "devDependencies": ["./src/testutils/**/*.js", "./src/**/*.spec.js"] }],
    "react/style-prop-object": ["off"]
  },
  "settings": {
    "import/resolver": "webpack"
  }
}

好的,我找到了问题和解决方案。这是因为网页包没有将链接模块视为
节点_modules
下的目录,而是将其视为模块所在的绝对路径(在我的示例中,它是
/var/workspace/mymoduledirectory
)。最终,解决方案可能是将绝对路径添加到webpack config中的
exclude
键,如下所示:

exclude: [/node_modules/, '/var/workspace/themoduledirectoryname'],
另外,解决方案是使用
包含
而不是
排除
,并仅定义我们要删除/传输的文件,如:

include: './src',

您是否尝试了以下解决方案?它不起作用。这个例子就是grunt。webpack也有一个例子,但共享配置与我的非常相似(
node\u modules
dir被排除在外),您将exclue数组放在哪里。Web包配置中的eslintrc.jsexclude数组(而不是eslintrc.js)似乎不支持排除