Исключение записи node_module в выходной файл в webpack

#javascript #node.js #webpack #babeljs

#javascript #node.js #webpack #babeljs

Вопрос:

Я пытаюсь перенести код es6 в es5, используя webpack и babel, и в js-файл я импортирую jquery, как показано ниже:

 import $ from 'jquery';
 

Поэтому, когда я создаю код с помощью webpack, выходной файл получает содержимое jquery вместе с исходным транспилированным кодом, который я не хочу использовать. Я добавил приведенную ниже инструкцию exclude к webpack.config.js но это, похоже, не исключает добавления части jquery.

 exclude:path.resolve(__dirname, 'node_modules'),
 

Вот что такое webpack.config.js файл выглядит следующим образом:

 var path = require('path');

module.exports = {
   entry: { 
   copystyles: './src/copystyles.js',
   docErrorReporter: './src/docErrorReporter',
   },
   output: {
    path:  path.resolve(__dirname, 'lib'),
    filename: "[name].js",
   },
   mode:'none',
   module: {
      rules: [
         {
            test: path.join(__dirname, 'src'),
            exclude:path.resolve(__dirname, 'node_modules'),
            use: ['babel-loader']
         }
      ]
   }
};
 

Кто-нибудь может сказать мне, не упускаю ли я здесь чего-то?
Спасибо!

Комментарии:

1. вы test:path.join(__dirname, 'src') в этом уверены ? потому что я думаю, что так и должно быть test:/.js/

2. Вы можете просто включить <script> тег в свой public/index.html для загрузки jQuery из CDN — и тогда он будет доступен по window.$ всему миру и не будет включен в ваш пакет.

3. @AlanOmar Да, это также работает по назначению

4. @VaishnavSivadas Это решение решило вашу проблему?

5. @IVOGELOV Спасибо вам за это решение, но это не помогло бы в сценарии, который я рассматриваю.