老师能打开浏览器但是cmd里面报错,更改js内容也会报错
来源:5-10 使用webpack-dev-server搭建开发环境
WYW265672
2022-05-28 20:50:40
D:\change_job\front_end_development\ES6\ES6(43)-Bable\9.使用 url-loader 处理图片>npm run dev
> webpack-js-img@1.0.0 dev
> webpack-dev-server --open chrome
(node:11548) [DEP0111] DeprecationWarning: Access to process.binding('http_parser') is deprecated.
(Use `node --trace-deprecation ...` to show where the warning was created)
i 「wds」: Project is running at http://localhost:8081/
i 「wds」: webpack output is served from /
i 「wds」: Content not from webpack is served from D:\change_job\front_end_development\ES6\ES6(43)-Bable\9.使用 url-loader 处理图片
i 「wdm」: wait until bundle finished: /
× 「wdm」: Hash: b95befab207522ddd0a1
Version: webpack 4.44.1
Time: 989ms
Built at: 2022/05/28 20:46:54
Asset Size Chunks Chunk Names
css/main.css 83 bytes main [emitted] main
img/background.jpg 336 KiB [emitted]
img/dog.jpg 141 KiB [emitted]
index.html 446 bytes [emitted]
main.js 311 KiB main [emitted] main
Entrypoint main = css/main.css main.js
[0] multi (webpack)-dev-server/client?http://localhost:8081 ./src/index.js 40 bytes {main} [built]
[./node_modules/ansi-html/index.js] 4.22 KiB {main} [built] [failed] [1 error]
[./node_modules/ansi-regex/index.js] 135 bytes {main} [built]
[./node_modules/strip-ansi/index.js] 161 bytes {main} [built]
[./node_modules/webpack-dev-server/client/index.js?http://localhost:8081] (webpack)-dev-server/client?http://localhost:8081 4.29 KiB {main} [built]
[./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js 3.51 KiB {main} [built]
[./node_modules/webpack-dev-server/client/socket.js] (webpack)-dev-server/client/socket.js 1.53 KiB {main} [built]
[./node_modules/webpack-dev-server/client/utils/createSocketUrl.js] (webpack)-dev-server/client/utils/createSocketUrl.js 2.91 KiB {main} [built]
[./node_modules/webpack-dev-server/client/utils/log.js] (webpack)-dev-server/client/utils/log.js 964 bytes {main} [built]
[./node_modules/webpack-dev-server/client/utils/reloadApp.js] (webpack)-dev-server/client/utils/reloadApp.js 1.59 KiB {main} [built]
[./node_modules/webpack-dev-server/client/utils/sendMessage.js] (webpack)-dev-server/client/utils/sendMessage.js 402 bytes {main} [built]
[./node_modules/webpack/hot sync ^\.\/log$] (webpack)/hot sync nonrecursive ^\.\/log$ 170 bytes {main} [built]
[./src/img/logo.png] 5.77 KiB {main} [built]
[./src/index.css] 39 bytes {main} [built]
[./src/index.js] 173 bytes {main} [built]
+ 18 hidden modules
ERROR in ./node_modules/ansi-html/index.js 1:29
Module parse failed: Unexpected token (1:29)
File was processed with these loaders:
* ./node_modules/html-withimg-loader/index.js
You may need an additional loader to handle the result of these loaders.
> module.exports = 'use strict'ansiHTML// Reference to https://github.com/sindresorhus/ansi-regexvar _regANSI = /(?:(?:\u001b\[)|\u009b)(?:(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m])|\u001b[A-M]/var _defColors = { reset: ['fff', '000'], // [FOREGROUD_COLOR, BACKGROUND_COLOR] black: '000', red: 'ff0000', green: '209805', yellow: 'e8bf03', blue: '0000ff', magenta: 'ff00ff', cyan: '00ffee', lightgrey: 'f0f0f0', darkgrey: '888'}var _styles = { 30: 'black', 31: 'red', 32: 'green', 33: 'yellow', 34: 'blue', 35: 'magenta', 36: 'cyan', 37: 'lightgrey'}var _openTags = { '1': 'font-weight:bold', // bold '2': 'opacity:0.5', // dim '3': '<i>', // italic '4': '<u>', // underscore '8': 'display:none', // hidden '9': '<del>' // delete}var _closeTags = { '23': '</i>', // reset italic '24': '</u>', // reset underscore '29': '</del>' // reset delete};[0, 21, 22, 27, 28, 39, 49].forEach(function (n) { _closeTags[n] = '</span>'})/** * Converts text with ANSI color codes to HTML markup. * @param {String} text * @returns {*} */function ansiHTML (text) { // Returns the text if the string has no ANSI escape code. if (!_regANSI.test(text)) { return text } // Cache opened sequence. var ansiCodes = [] // Replace with markup. var ret = text.replace(/\033\[(\d+)*m/g, function (match, seq) { var ot = _openTags[seq] if (ot) { // If current sequence has been opened, close it. if (!!~ansiCodes.indexOf(seq)) { // eslint-disable-line no-extra-boolean-cast ansiCodes.pop() return '</span>' } // Open tag. ansiCodes.push(seq) return ot[0] === '<' ? ot : '<span style="' + ot + ';">' } var ct = _closeTags[seq] if (ct) { // Pop sequence ansiCodes.pop() return ct } return '' }) // Make sure tags are closed. var l = ansiCodes.length ;(l > 0) && (ret += Array(l + 1).join('</span>')) return ret}/** * Customize colors. * @param {Object} colors reference to _defColors */ansiHTML.setColors = function (colors) { if (typeof colors !== 'object') { throw new Error('`colors` parameter must be an Object.') } var _finalColors = {} for (var key in _defColors) { var hex = colors.hasOwnProperty(key) ? colors[key] : null if (!hex) { _finalColors[key] = _defColors[key] continue } if ('reset' === key) { if (typeof hex === 'string') { hex = [hex] } if (!Array.isArray(hex) || hex.length === 0 || hex.some(function (h) { return typeof h !== 'string' })) { throw new Error('The value of `' + key + '` property must be an Array and each item could only be a hex string, e.g.: FF0000') } var defHexColor = _defColors[key] if (!hex[0]) { hex[0] = defHexColor[0] } if (hex.length === 1 || !hex[1]) { hex = [hex[0]] hex.push(defHexColor[1]) } hex = hex.slice(0, 2) } else if (typeof hex !== 'string') { throw new Error('The value of `' + key + '` property must be a hex string, e.g.: FF0000') } _finalColors[key] = hex } _setTags(_finalColors)}/** * Reset colors. */ansiHTML.reset = function () { _setTags(_defColors)}/** * Expose tags, including open and close. * @type {Object} */ansiHTML.tags = {}if (Object.defineProperty) { Object.defineProperty(ansiHTML.tags, 'open', { get: function () { return _openTags } }) Object.defineProperty(ansiHTML.tags, 'close', { get: function () { return _closeTags } })} else { ansiHTML.tags.open = _openTags ansiHTML.tags.close = _closeTags}function _setTags (colors) { // reset all _openTags['0'] = 'font-weight:normal;opacity:1;color:#' + colors.reset[0] + ';background:#' + colors.reset[1] // inverse _openTags['7'] = 'color:#' + colors.reset[1] + ';background:#' + colors.reset[0] // dark grey _openTags['90'] = 'color:#' + colors.darkgrey for (var code in _styles) { var color = _styles[code] var oriColor = colors[color] || '000' _openTags[code] = 'color:#' + oriColor code = parseInt(code) _openTags[(code + 10).toString()] = 'background:#' + oriColor }}ansiHTML.reset()
@ (webpack)-dev-server/client/overlay.js 4:15-35
@ (webpack)-dev-server/client?http://localhost:8081
@ multi (webpack)-dev-server/client?http://localhost:8081 ./src/index.js
Child HtmlWebpackCompiler:
Asset Size Chunks Chunk Names
img/dog.jpg 141 KiB [emitted]
+ 1 hidden asset
Entrypoint HtmlWebpackPlugin_0 = __child-HtmlWebpackPlugin_0
[./node_modules/html-webpack-plugin/lib/loader.js!./index.html] 464 bytes {HtmlWebpackPlugin_0} [built]
[./src/img/dog.jpg] 57 bytes {HtmlWebpackPlugin_0} [built]
Child mini-css-extract-plugin ../9.使用 url-loader 处理图片\node_modules\css-loader\dist\cjs.js!../9.使用 url-loader 处理图片\src\index.css:
Entrypoint mini-css-extract-plugin = *
[./node_modules/css-loader/dist/cjs.js!./src/index.css] 654 bytes {mini-css-extract-plugin} [built]
[./node_modules/css-loader/dist/runtime/api.js] 2.46 KiB {mini-css-extract-plugin} [built]
[./node_modules/css-loader/dist/runtime/getUrl.js] 830 bytes {mini-css-extract-plugin} [built]
[./src/img/background.jpg] 64 bytes {mini-css-extract-plugin} [built]
i 「wdm」: Failed to compile.下面是配置文件的内容
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
mode: 'development',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js'
},
module: {
rules: [
{
test: /\.css$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
// 为css里面携带的文件规定公共路径
publicPath: '../'
}
},
'css-loader'
]
},
{
test:/\.jpg|png|gif$/,
use:{
loader:'url-loader',
options:{
name:'img/[name].[ext]',
esModule:false,
// 10k以内的文件转成base64,js直接携带,10k以上的文件用file-load输出
limit:10000
}
}
},
{
// html-withimg-loader 用来处理html里的图片,比如img标签中的图片
// html-withimg-loader只是把html里面的图片识别出来,最终还是file-loader去处理的
test:/\.htm|html/,
use:{
loader:'html-withimg-loader'
}
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: './index.html',
filename: 'index.html'
}),
new MiniCssExtractPlugin({
filename: 'css/[name].css'
})
]
};// json文件内容
{
"name": "webpack-js-img",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"webpack": "webpack",
"dev":"webpack-dev-server --open chrome"
},
"author": "",
"license": "ISC",
"devDependencies": {
"css-loader": "^4.1.1",
"file-loader": "^6.0.0",
"html-webpack-plugin": "^4.3.0",
"html-withimg-loader": "^0.1.16",
"mini-css-extract-plugin": "^0.9.0",
"style-loader": "^1.2.1",
"url-loader": "^4.1.0",
"webpack": "^4.44.1",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.0"
}
}1回答
好帮手慕慕子
2022-05-29
同学你好,根据粘贴的代码测试,是因为loader中的匹配规则书写,导致无法正确匹配文件,出现报错,建议修改:

祝学习愉快~
相似问题