Webpack 网页包配置错误:";无法解析@import";
我有一个非常基本的Webpack设置,但是在运行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
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'
}
]
}