Скрипт webpack работает в бесконечном цикле в реактивном проекте - PullRequest
0 голосов
/ 05 декабря 2018

наконец я изменяю рендеринг моего реагирующего проекта на рендеринг на стороне сервера.Большая проблема заключалась в том, как мне добавить мои файлы SCSS в мой проект (преобразование в CSS).Текущее состояние таково, что все в значительной степени работает.Есть одна проблема, с которой я не могу справиться.У меня есть скрипт webpack для рендеринга на стороне клиента (для включения java-скрипта), который продолжает работать в бесконечном цикле, даже если ничего не меняется (я добавляю «--watch», но ничего не должно меняться.

файлы webpackниже: webpack.client.js

const path = require('path');
const merge = require('webpack-merge');
const baseConfig = require('./webpack.base');
const autoprefixer = require('autoprefixer');
const cssConfig = require('./webpack.cssConfig');


const config = {
//Tell webpack the root file of our server application
entry: './src/client/client.js',

//Tell webpack whre to put the output file
// that is generated
output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'public')
},
module: {
    rules: [
      {
        test: /\.js?$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        options: {
          presets: [
            'react',
            'stage-0',
            ['env', { targets: { browsers: ['last 2 versions']}}]
          ]
        }
      }
    ]
  }
};

module.exports = merge(baseConfig, config);

webpack.client.js

const ExtractTextPlugin = require('extract-text-webpack-plugin');
const CSSExtract = new ExtractTextPlugin('styles.css');


module.exports = {
//Tell webpack to run babel on every file it runs trough
module: {
    rules: [
        {   
            test: /\.js?$/,
            loader: 'babel-loader',
            exclude: /node_modules/,
            options: {
                presets: [
                    'react',
                    'stage-0',
                    ['env', {targets: {browsers:['last 2 versions']}}]
                ]
            }
        },
            {
                test: /\.s?css$/,
                use: CSSExtract.extract({
                  use: [
                    {
                      loader: 'css-loader',
                    },
                    {
                      loader: 'sass-loader',
                    }
                  ]
                })
              }]
            },
            plugins: [
              CSSExtract
            ]
  };

И вот что произошло, когда я начал запускать скрипт «dev: build-client»:"webpack --config webpack.client.js --watch"

Start running the script

и поэтому один цикл повторяется каждые две секунды.

1 Ответ

0 голосов
/ 05 декабря 2018

Похоже, что он постоянно повторяется по общедоступным / стилям, я не уверен, но возможно, ваш Webpack наблюдает за общедоступным каталогом, попробуйте изменить вывод:

  output: {
    path: path.join(__dirname, '/dist/'),
    filename: 'bundle.js',
    publicPath: '/public'
  }

Надеюсь, этопомогает.

Ллойд

...