У меня проблема с модулем связанных узлов.Итак, я работаю над приложением реагирования с настройкой дырок на основе веб-пакета 4. Кроме того, я создаю собственный модуль узла, который будет использоваться несколькими приложениями реагирования.Я пишу модуль в ES6, и я использую Babel для транспорта.Проблема заключается в том, что, как только я хочу запустить приложение реагирования с импортированным модулем, у меня появляется следующая ошибка:
Uncaught Error: Module build failed (from ./node_modules/eslint-loader/index.js):
Error: No ESLint configuration found.
Как только я настроил eslinter в модуле, он сообщает о других проблемах (Похоже, что eslinter из реагирующего приложения пытается запустить модуль связанного узла, что, очевидно, не должно происходить для узловых модулей).
Проблема возникает, только если модуль связан.Как только я помещаю модуль непосредственно в каталог node_modules
(он не связан), проблема исчезает, и все работает нормально.Итак, у вас есть идея, как исключить из конфигурации веб-пакета также связанные модули узлов?Это мой конфиг веб-пакета:
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()],
};
, а это мой .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"
}
}