Как пропустить вывод Javascript в Webpack 4? - PullRequest
0 голосов
/ 20 мая 2018

Я использую Webpack 4 в проекте, где мне нужно только компилировать и связывать стили.Там нет Javascript.

Вот мой конфиг:

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
  entry: {
    'css/bundle': path.resolve(__dirname, 'static/scss/index.scss'),
  },
  output: {
    path: path.resolve(__dirname, 'static'),
  },
  module: {
    rules: [
      {
        test: /\.s[ac]ss$/,
        include: path.resolve(__dirname, 'static/scss'),
        use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'],
      },
    ],
  },
  plugins: [
    new MiniCssExtractPlugin(),
  ],
};

Проблема в том, что он выводит два файла: bundle.css и bundle.js.Есть ли способ настроить Webpack так, чтобы он не выводил комплект Javascript?Я пытался перемещаться по документам, пробовал дюжину разных вещей, но на самом деле это не сработало.

Одно важное замечание: если я удаляю css-загрузчик, сборка завершается неудачно.Поэтому, хотя css-loader, скорее всего, отвечает за вывод файла bundle.js, я не совсем уверен, как его избежать.

Ответы [ 3 ]

0 голосов
/ 22 июля 2018

webpack-extraneous-file-cleanup-plugin не работает с webpack 4.12.0.

Я могу предложить удалить bundle.js вручную с помощью on-build-webpack plugin :

var WebpackOnBuildPlugin = require('on-build-webpack');

// ...

plugins: [
    // ...

    new WebpackOnBuildPlugin(function () {
        fs.unlinkSync(path.join('path/to/build', 'bundle.js'));
    }),
],
0 голосов
/ 30 августа 2018

Я просто удаляю вывод с новой задачей "cleanjs" в package.json:

"scripts": {
    "clean": "rimraf dist",
    "cleanjs": "rimraf dist/assets/js",
    "dev": "webpack-dev-server --progress --hide-modules --mode development",
    "build": "npm run clean && webpack --hide-modules --mode production && npm run cleanjs"
  },

Эта задача затем вызывается в конце процесса сборки (см. Задачу сборки).

0 голосов
/ 21 мая 2018

К сожалению, именно так сейчас работает веб-пакет.Однако мы не одиноки в этой проблеме!Существует плагин для очистки любых нежелательных файлов:

установите плагин:

yarn add webpack-extraneous-file-cleanup-plugin -D

и затем в вашей конфигурации:

const ExtraneousFileCleanupPlugin = require('webpack-extraneous-file-cleanup-plugin');

plugins: [
  new ExtraneousFileCleanupPlugin({
    extensions: ['.js'],
    minBytes: 1024,
    paths: ['./static']
  }),
]
...