Webpack 网页包配置错误:";无法解析@import";

Webpack 网页包配置错误:";无法解析@import";,webpack,sass,bootstrap-4,Webpack,Sass,Bootstrap 4,我有一个非常基本的Webpack设置,但是在运行npm run build捆绑模块时,Webpack给了我以下错误:“无法解析@import for~bootstrap/scss/bootstrap.scss” 我已经安装了Bootstrap的依赖项,包括precss,autoprefixer,postss加载器,jquery,以及popper.js。然后我将引导导入到我的SCSS文件中 main.css: const path = require('path'); const HtmlWebp

我有一个非常基本的Webpack设置,但是在运行
npm run build
捆绑模块时,Webpack给了我以下错误:
“无法解析@import for~bootstrap/scss/bootstrap.scss”

我已经安装了Bootstrap的依赖项,包括
precss
autoprefixer
postss加载器
jquery
,以及
popper.js
。然后我将引导导入到我的SCSS文件中

main.css:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const autoprefixer = require('autoprefixer');
const precss = require('precss');

module.exports = {
  mode: 'development',
  entry: {
    app: './src/index.js',
  },
  devtool: 'inline-source-map', 
  devServer: { 
    contentBase: './dist', 
    publicPath: '/',
    hot: true
  },
  module: {
    rules: [
      {
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          'sass-loader',
          {
            loader: 'postcss-loader',
            options: {
              plugins: function() {
                return [
                  precss,
                  autoprefixer
                ];
              }
            }
          }]
      }
    ]
  },
  plugins: [
      new CleanWebpackPlugin(),
      new HtmlWebpackPlugin({
        filename: 'index.html',
        template: './src/main.html'
      })
    ],
  output: {
    filename: 'js/[name].bundle.js',
    path: path.resolve(__dirname, 'dist'),
    publicPath: '/'
  }
};
"devDependencies": {
    "clean-webpack-plugin": "^3.0.0",
    "css-loader": "^3.2.0",
    "csv-loader": "^3.0.2",
    "file-loader": "^4.2.0",
    "html-webpack-plugin": "^3.2.0",
    "node-sass": "^4.12.0",
    "papaparse": "^5.0.1",
    "postcss-loader": "^3.0.0",
    "precss": "^4.0.0",
    "sass-loader": "^7.1.0",
    "style-loader": "^1.0.0",
    "webpack": "^4.39.1",
    "webpack-cli": "^3.3.6",
    "webpack-dev-server": "^3.7.2"
  },
  "dependencies": {
    "bootstrap": "^4.3.1",
    "jquery": "^3.4.1",
    "lodash": "^4.17.15",
    "popper.js": "^1.15.0",
    "vue": "^2.6.10"
  }
@import“~bootstrap/scss/bootstrap.scss”

webpack.config.js:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const autoprefixer = require('autoprefixer');
const precss = require('precss');

module.exports = {
  mode: 'development',
  entry: {
    app: './src/index.js',
  },
  devtool: 'inline-source-map', 
  devServer: { 
    contentBase: './dist', 
    publicPath: '/',
    hot: true
  },
  module: {
    rules: [
      {
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          'sass-loader',
          {
            loader: 'postcss-loader',
            options: {
              plugins: function() {
                return [
                  precss,
                  autoprefixer
                ];
              }
            }
          }]
      }
    ]
  },
  plugins: [
      new CleanWebpackPlugin(),
      new HtmlWebpackPlugin({
        filename: 'index.html',
        template: './src/main.html'
      })
    ],
  output: {
    filename: 'js/[name].bundle.js',
    path: path.resolve(__dirname, 'dist'),
    publicPath: '/'
  }
};
"devDependencies": {
    "clean-webpack-plugin": "^3.0.0",
    "css-loader": "^3.2.0",
    "csv-loader": "^3.0.2",
    "file-loader": "^4.2.0",
    "html-webpack-plugin": "^3.2.0",
    "node-sass": "^4.12.0",
    "papaparse": "^5.0.1",
    "postcss-loader": "^3.0.0",
    "precss": "^4.0.0",
    "sass-loader": "^7.1.0",
    "style-loader": "^1.0.0",
    "webpack": "^4.39.1",
    "webpack-cli": "^3.3.6",
    "webpack-dev-server": "^3.7.2"
  },
  "dependencies": {
    "bootstrap": "^4.3.1",
    "jquery": "^3.4.1",
    "lodash": "^4.17.15",
    "popper.js": "^1.15.0",
    "vue": "^2.6.10"
  }
package.json:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const autoprefixer = require('autoprefixer');
const precss = require('precss');

module.exports = {
  mode: 'development',
  entry: {
    app: './src/index.js',
  },
  devtool: 'inline-source-map', 
  devServer: { 
    contentBase: './dist', 
    publicPath: '/',
    hot: true
  },
  module: {
    rules: [
      {
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          'sass-loader',
          {
            loader: 'postcss-loader',
            options: {
              plugins: function() {
                return [
                  precss,
                  autoprefixer
                ];
              }
            }
          }]
      }
    ]
  },
  plugins: [
      new CleanWebpackPlugin(),
      new HtmlWebpackPlugin({
        filename: 'index.html',
        template: './src/main.html'
      })
    ],
  output: {
    filename: 'js/[name].bundle.js',
    path: path.resolve(__dirname, 'dist'),
    publicPath: '/'
  }
};
"devDependencies": {
    "clean-webpack-plugin": "^3.0.0",
    "css-loader": "^3.2.0",
    "csv-loader": "^3.0.2",
    "file-loader": "^4.2.0",
    "html-webpack-plugin": "^3.2.0",
    "node-sass": "^4.12.0",
    "papaparse": "^5.0.1",
    "postcss-loader": "^3.0.0",
    "precss": "^4.0.0",
    "sass-loader": "^7.1.0",
    "style-loader": "^1.0.0",
    "webpack": "^4.39.1",
    "webpack-cli": "^3.3.6",
    "webpack-dev-server": "^3.7.2"
  },
  "dependencies": {
    "bootstrap": "^4.3.1",
    "jquery": "^3.4.1",
    "lodash": "^4.17.15",
    "popper.js": "^1.15.0",
    "vue": "^2.6.10"
  }

我可能缺少什么?

对于未来的读者,这是我的
webpack.config.js
文件中的一个语法问题。我没有用
loader:
作为我的加载器的开头。在我这样做之后,我能够非常好地运行
npm-run-build
npm-start

而不是:

{
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          'sass-loader',
          {
            loader: 'postcss-loader',
            options: {
              plugins: function() {
                return [
                  precss,
                  autoprefixer
                ];
              }
            }
          }]
      }
我需要这个:

  {
        test: /\.scss$/,
        use: [
          {
            loader: 'style-loader'
          },
          {
            loader: 'css-loader'
          },
          {
            loader: 'postcss-loader',
            options: {
              plugins: function() {
                return [
                  require('precss'),
                  require('autoprefixer')
                ];
              }
            }
          },
          {
          loader: 'sass-loader'
          }
        ]
      }