В файле конфигурации webpack я устанавливаю "node_modules" и "src/js/libs" в качестве папок, где webpack должен искать модули. 'jquery-form-styler' устанавливается через npm и живет в 'node_modules', но, согласно первой ошибке, webpack пытается найти модуль в 'src/js/modules'. Зачем?
ERROR in ./src/js/modules/forms.js
Module not found: Error: Can't resolve 'jquery-form-styler' in '/Users/ildar.meyker/Sites/html-taxnet/src/js/modules'
@ ./src/js/modules/forms.js 5:0-28
@ ./src/js/modules/app.js
@ ./src/js/main.js
Содержимое моей webpack.config.js:
const path = require('path');
const webpack = require('webpack');
module.exports = {
mode: 'development',
entry: {
main: './src/js/main.js',
metrics: './src/js/metrics.js'
},
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'public/js')
},
resolve: {
modules: [path.resolve(__dirname, 'src/js/libs'), 'node_modules']
},
plugins: [
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
],
optimization: {
splitChunks: {
chunks: "all",
minSize: 0
}
}
};
Структура моих файлов:
/node_modules/
/src/
js/
libs/
modules/
app.js
...
forms.js
...
main.js
metrics.js
forms.js начинается как:
import $ from 'jquery';
import 'jquery.maskedinput';
import 'jquery-validation/jquery.validate';
import 'jquery-validation/additional-methods';
import 'jquery-form-styler';
...
Где "jquery" и "jquery-form-styler" расположены в "node_modules", а другие модули в "src/js/libs".
Похоже, что ссылка webpack на "src/js/modules" не была вызвана попыткой найти модуль в этой папке. Произошла ошибка, потому что package.json в 'jquery-form-styles' имел основной атрибут. 'jquery.formstyler.min.js' вместо './dist/jquery.formstyler.min.js'.