这是我第一次使用 Webpack,我遇到了问题。
我收到错误消息 ERROR in Error: Child compiler failed: Module parse failed: Unexpected character '�' (1:0)
当我以这种方式放置图像标签 src 时。我在第一个“/”之前添加了一个句点,因为我在我的根文件夹中,并且想将一个文件夹添加到资产中。所以,我希望它看起来像这样: img src="./assets/images/mockup.png" alt=" 但这无法构建到生产和开发模式
如果我不添加这样的句点,它可以在开发模式下工作。img src="/assets/images/mockup.png" alt="",但这不是我想要的最终构建。它使最终构建失败,因为如果我不将句点放在首位,它就找不到我的资产。
这是我的文件树:
这是我的 webpack 配置。
webpack.config.js
const currentTask = process.env.npm_lifecycle_event
const path = require('path')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const fse = require('fs-extra')
const postCSSPlugins = [require('postcss-import'), require('postcss-mixins'), require('postcss-simple-vars'), require('postcss-nested'), require('postcss-hexrgba'), require('postcss-color-function'), require('autoprefixer')]
class RundAfterCompile {
apply(compliler) {
compliler.hooks.done.tap('Copy Images', function () {
fse.copySync('./app/assets/images', './dist/assets/images')
})
}
}
// htmls
let pages = fse
.readdirSync('./app')
.filter(function (file) {
return file.endsWith('.html')
})
.map(function (page) {
return new HtmlWebpackPlugin({
filename: page,
template: `./app/${page}`,
})
})
// CSS
let cssConfig = {
test: /\.css$/i,
use: ['css-loader?url=false', { loader: 'postcss-loader', options: { plugins: postCSSPlugins } }],
}
// Common rules
let config = {
entry: './app/assets/scripts/App.js',
plugins: pages,
module: {
rules: [
cssConfig,
{
test: /\.js$/,
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-react', '@babel/preset-env'],
},
},
},
{
test: /\.html$/,
use: {
loader: 'html-loader',
options: {
interpolate: true,
},
},
},
],
},
}
// Developement stage
if (currentTask == 'dev') {
cssConfig.use.unshift('style-loader')
config.output = {
filename: 'bundled.js',
path: path.resolve(__dirname, 'app'),
}
config.devServer = {
before: function (app, server) {
server._watch('./app/**/*.html')
},
contentBase: path.resolve(__dirname, 'app'),
hot: true,
port: 3000,
host: '0.0.0.0',
}
config.mode = 'development'
}
我在我的 webpack 配置文件中犯了错误吗?为什么我会收到错误:'错误中的错误:子编译失败:模块解析失败:意外字符'�'(1:0)'
如果我添加“./”,则处于开发模式和生产模式。有任何想法吗?没有“。” 它在我的文件树中找不到文件吗?