css-loader,less-loader,url-loader,babel-loader的安装及其配置

   由于webpack只能打包处理以 .js 后缀名结尾的模块,需要额外的loader加载器才可以处理其他类型的文件,如.css、 .less等相关文件

安装css-loader

//默认安装最新版本
npm i style-loader css-loader -D
//指定安装版本
npm i style-loader@3.0.0 css-loader@5.2.6 -D

在webpack.config.js的module中配loader规则

module.exports = {
    mode:'development',
        module:{
        //所有第三方文件模块的匹配规则
        rules: [
            //文件后缀名的匹配规则
            {test: /\.css$/,use: ['style-loader','css-loader']}
            //test指定什么类型文件,$表示以什么结尾的文件,use表示用什么方法去处理这样的文件
            //必须先是'style-loader',后面才是'css-loader'
        ]
    }
}

调用规则
在“index.js”文件中通过“import”进行调用

// 导入样式(在webpack中,一切皆模块,都可以通过ES6导入语法进行导入和使用)
import './css/index.css'

安装less-loader

//默认安装最新版本
npm i less-loader less -D
//指定安装版本
npm i less-loader@10.0.1 less@4.1.1 -D

安装完成之后和“.css”一样需要在webpack.config.js的module中配loader规则

module.exports = {
    mode:'development',
        module:{
        //所有第三方文件模块的匹配规则
        rules: [
            //文件后缀名的匹配规则
            {test: /\.less$/,use: ['style-loader','css-loader','less-loader']}
            //test指定什么类型文件,$表示以什么结尾的文件,use表示用什么方法去处理这样的文件
        ]
    }
}

调用规则
在“index.js”文件中通过“import”进行调用

// 导入样式(在webpack中,一切皆模块,都可以通过ES6导入语法进行导入和使用)
import './css/index.less'

安装url-loader

//默认安装最新版本
npm i url-loader file-loader -D
//指定安装版本
npm i url-loader@4.1.1 file-loader@6.2.0 -D

安装完成之后和“.css”一样需要在webpack.config.js的module中配loader规则

module.exports = {
    mode:'development',
        module:{
        //所有第三方文件模块的匹配规则
        rules: [
			//与上面类似
            //处理图片类型文件
            {test: /\.jpg|pan|gif$/,use: ['url-loader?limit-22222']},
            //limit用来指定图片的大小,单位是字节(byte),只有≤limit的图片才能被转换为base64格式,这里也可以不用加限值,如果不加限值的话就是去掉“?limit-22222”就行了
        ]
    }
}

调用规则
在“index.js”文件中通过“import”进行调用

// 导入样式(在webpack中,一切皆模块,都可以通过ES6导入语法进行导入和使用)
//导入图片,得到图片文件
import logo from './image/logo.jpg'
//给image标签的src动态赋值
$('.box').attr('src',logo)

在“index.js”文件中需要设置

<!-- 需求:把/src/images/logo.jpg设置给src属性 -->
    <img src="" alt="" class="box">

安装babel-loader

webpack只能打包处理一部分高级的JavaScript语法,对于一些webpack无法处理的高级JS语法,需要借助于label-loader 进行打包处理

npm i babel-loader @babel/core @babel/plugin-proposal-decorators -D

安装完成之后和“.css”一样需要在webpack.config.js的module中配loader规则

module:{
        //所有第三方文件模块的匹配规则
        rules: [
            //处理webpack无法处理的高级语法
            {test: /\.js$/,use: 'babel-loader',exclude: /node_modules/},
            // 注意:必须使用exclude指定排除项,因为node_modules目录下的第三方包不需要被打包
        ]
    }

配置完成之后还需要配置babel-loader
在项目目录下面,创阿金babel.config.js的配置文件,并在文件中进行如下配置

module.exports = {
    //声明babel可用的插件
   // 将来,webpack在调用babel-loader的时候会先加载plugins插件来使用
    plugins:[['@babel/plugin-proposal-decorators',{legacy:true}]]
}

调用

//1. 定义名为info的装饰器
function info (target){
    // 2. 为目标添加静态属性
    target.info = 'Person info'
}

// 3. 为Person类应用info 装饰器
@info
class Person {}

//4. 打印Person的静态属性 info
console.log(Person.info)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: css-loader@2.1.1 npm ERR! Found: webpack@2.7.0 npm ERR! node_modules/webpack npm ERR! peer webpack@"2 || 3 || 4" from babel-loader@7.1.5 npm ERR! node_modules/babel-loader npm ERR! babel-loader@"^7.1.2" from [email protected] npm ERR! node_modules/vue-photo-preview npm ERR! vue-photo-preview@"^1.1.3" from the root project npm ERR! dev babel-loader@"^7.1.5" from the root project npm ERR! peer webpack@"^2.0.0 || ^3.0.0 || ^4.0.0" from file-loader@1.1.11 npm ERR! node_modules/file-loader npm ERR! file-loader@"^1.1.4" from [email protected] npm ERR! node_modules/vue-photo-preview npm ERR! vue-photo-preview@"^1.1.3" from the root project npm ERR! 5 more (less-loader, uglifyjs-webpack-plugin, ...) npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer webpack@"^4.0.0" from css-loader@2.1.1 npm ERR! node_modules/css-loader npm ERR! peer css-loader@"*" from vue-loader@15.10.1 npm ERR! node_modules/vue-loader npm ERR! dev vue-loader@"^15.9.5" from the root project npm ERR! dev css-loader@"^2.1.0" from the root project npm ERR! npm ERR! Conflicting peer dependency: webpack@4.46.0 npm ERR! node_modules/webpack npm ERR! peer webpack@"^4.0.0" from css-loader@2.1.1 npm ERR! node_modules/css-loader npm ERR! peer css-loader@"*" from vue-loader@15.10.1 npm ERR! node_modules/vue-loader npm ERR! dev vue-loader@"^15.9.5" from the root project npm ERR! dev css-loader@"^2.1.0" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
03-24

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值