Как исправить ошибку с помощью dev-server watch? - PullRequest
0 голосов
/ 10 января 2019

Существует следующая структура проекта структура проекта

Я хочу, чтобы сервер запускал проект из dist, но при переходе на src он был перекомпилирован, и все было скопировано в dist.

Мой webpack.config.js.

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

module.exports = {
  mode: 'development',
  entry: './src/scripts/script.js',
  devtool: 'inline-source-map',
  devServer: {
    contentBase: './dist'
  },
  plugins: [
      new CopyWebpackPlugin([
          {
              from: './src/index.html',
              to: '../index.html'
          }
      ]),
      new MiniCssExtractPlugin({
            filename: '../styles/style.css'
      })
  ],
  module: {
      rules: [
          {
              test: /\.scss$/,
              use: [
                MiniCssExtractPlugin.loader,    
                'css-loader',
                'sass-loader'
              ]
          }
      ]
  },
  output: {
    filename: 'script.js',
    path: path.resolve(__dirname, 'dist/scripts')
  }
};

Содержимое script.js

import './../styles/style.scss';

package.json

{
  "name": "landing",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "scripts": {
  "start": "webpack-dev-server --open",
  "build": "webpack"
},
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "copy-webpack-plugin": "^4.6.0",
    "css-loader": "^2.1.0",
    "import-glob": "^1.5.0",
    "mini-css-extract-plugin": "^0.5.0",
    "node-sass": "^4.11.0",
    "sass-loader": "^7.1.0",
    "webpack": "^4.28.1",
    "webpack-cli": "^3.2.1",
    "webpack-dev-server": "^3.1.14"
  }
}

В данный момент при переходе на src происходит компиляция, но эти изменения не попадают в папку dist.

Как это исправить?

1 Ответ

0 голосов
/ 10 января 2019

Вы пробовали watchContentBase опция:

devServer: {
       contentBase: './dist',
       watchContentBase: true,
  },

Когда вы используете dev-сервер, ваши изменения не попадают в папку dist. Он хранится в буфере. Для более подробной информации смотрите это хорошее объяснение: Почему не работает Live-Reload webpack-dev-server

...