Vue系列之 => webpack处理css文件

处理css文件

安装

npm i style-loader css-loader -D

main.js

import $ from ‘jquery‘ //Es6中导入模块的方式
import ‘./css/index.css‘
// import ‘./css/index.css‘ webpack默认只能打包处理js类型文件
//如果需要处理非js类型的文件,我们需要手动安装一些合适的第三方loader加载器
// 1、打包处理css文件,需要安装 npm i style-loade css-loader -D
// 2、打开webpack.config.js这个配置文件,在里面新增一个配置节点,叫做module它是一个对象
//然后在module这个对象上有个rules属性,这个rules属性是个数组;这个数组中存放了所有第三方
//文件的匹配和处理规则

$(function(){
    $(‘li:odd‘).css(‘backgroundColor‘,‘red‘);
    $(‘li:even‘).css(‘backgroundColor‘,function(){
        return ‘skyblue‘;
    });
})

webpack.config.js

const path = require(‘path‘);
//启用热更新的第二步,导入webpack
const webpack = require(‘webpack‘);
//导入在内存中生成html页面的插件,只要是插件,都要放到plugins节点中去
const htmlWebpackPlugin = require(‘html-webpack-plugin‘);

module.exports = {
    entry: path.join(__dirname, ‘./src/main.js‘),
    output: {
        path: path.join(__dirname, ‘./dist‘),
        filename: ‘bundle.js‘
    },
    devServer: { //这是配置webpack-dev-server命令参数的第二种形式
        open: true, //自动打开浏览器
        port: 3100, //设置端口
        contentBase: ‘src‘, //指定托管的根目录
        hot: true //启用热更新的第一步
    },
    plugins: [ //配置插件的节点
        //启用热更新第三步
        new webpack.HotModuleReplacementPlugin(), //new一个热更新的模块对象
        new htmlWebpackPlugin({ //创建一个在内存中生成html页面的插件
            template : path.join(__dirname,‘./src/index.html‘), //指定模板页面,根据指定的路径生成内存中的页面
            filename : ‘index.html‘ //指定内存中生成的页面的名称
        })
    ],
    module : { //这个节点,用于配置所有第三方模块加载器
        rules : [ //所有第三方模块的匹配规则
            { test:/\.css$/,use:[‘style-loader‘,‘css-loader‘] } //配置处理.css文件的第三方loader规则     //注意:webpack处理第三方文件类型的过程:     //1,发现这个要处理的文件不是js文件,就去配置文件中查找有没有对应的第三方Loader规则     //2,如果能找到对应的规则,就会调用对应的Loader处理这种文件类型      //3, 在调用loader的时候,是从后往前调用的     //4,当最后的一个Loader调用完毕,会把处理的结果直接交给webpack进行打包合并,最终输出到bundle.js中去。
        ]
    }
}

处理less文件

npm i less -D

npm i less-loader -D

main.js文件

import $ from ‘jquery‘ //Es6中导入模块的方式
import ‘./css/index.css‘
import ‘./css/index.less‘
// import ‘./css/index.css‘ webpack默认只能打包处理js类型文件
//如果需要处理非js类型的文件,我们需要手动安装一些合适的第三方loader加载器
// 1、打包处理css文件,需要安装 npm i style-loade css-loader -D
// 2、打开webpack.config.js这个配置文件,在里面新增一个配置节点,叫做module它是一个对象
//然后在module这个对象上有个rules属性,这个rules属性是个数组;这个数组中存放了所有第三方
//文件的匹配和处理规则

$(function(){
    $(‘li:odd‘).css(‘backgroundColor‘,‘red‘);
    $(‘li:even‘).css(‘backgroundColor‘,function(){
        return ‘skyblue‘;
    });
})

webpack.config.js文件

const path = require(‘path‘);
//启用热更新的第二步,导入webpack
const webpack = require(‘webpack‘);
//导入在内存中生成html页面的插件,只要是插件,都要放到plugins节点中去
const htmlWebpackPlugin = require(‘html-webpack-plugin‘);

module.exports = {
    entry: path.join(__dirname, ‘./src/main.js‘),
    output: {
        path: path.join(__dirname, ‘./dist‘),
        filename: ‘bundle.js‘
    },
    devServer: { //这是配置webpack-dev-server命令参数的第二种形式
        open: true, //自动打开浏览器
        port: 3100, //设置端口
        contentBase: ‘src‘, //指定托管的根目录
        hot: true //启用热更新的第一步
    },
    plugins: [ //配置插件的节点
        //启用热更新第三步
        new webpack.HotModuleReplacementPlugin(), //new一个热更新的模块对象
        new htmlWebpackPlugin({ //创建一个在内存中生成html页面的插件
            template: path.join(__dirname, ‘./src/index.html‘), //指定模板页面,根据指定的路径生成内存中的页面
            filename: ‘index.html‘ //指定内存中生成的页面的名称
        })
    ],
    module: { //这个节点,用于配置所有第三方模块加载器
        rules: [ //所有第三方模块的匹配规则
            {
                test: /\.css$/,
                use: [‘style-loader‘, ‘css-loader‘]
            }, //配置处理.css文件的第三方loader规则
            {
                test: /\.less$/,
                //配置处理.less文件的第三方文件规则
                use: [‘style-loader‘,‘css-loader‘,‘less-loader‘]
            }
        ]
    }
}

处理scss文件

安装  npm i sass-loader -D   && npm i node-sass -D (在安node-sass要使用cnpm,npm安装极容易失败)

其他配置按照css和less操作即可。

原文地址:https://www.cnblogs.com/winter-shadow/p/10241860.html

时间: 2024-10-07 20:09:17

Vue系列之 => webpack处理css文件的相关文章

透过现象看webpack处理css文件中图片路径转换的具体过程

webpack是目前使用比较流行的一个前端模块打包器,前端的任何资源都被当成一个模块来处理,如图片.css文件等等.在基于webpack构建的前端项目中,一般都会配置有关css文件处理的规则,这其中也包括css文件中图片资源的处理,那么webpack到底是怎么处理它的呢?笔者之前也遇到过类似图片路劲的问题,为此还写过一篇博文webpack生成的css文件background-image url图片无法加载.今天就来说说webpack是怎么处理css文件中的图片路径的,首先上一个具体的例子. 一个

webpack模块加载css文件及图片地址

webpack支持css文件加载并打包,只需安装相应加载器并在配置文件中配置 . 加载的css文件内容会与该模块里的js内容混合封装,这样做的好处是一个js文件包含了所有的css与js内容,有效减少了http请求次数,显著提高了页面响应性能的用户体验. 加载css文件时,如果css里含有图片的引用地址,编译时webpack会将图片资源处理并输出到设置的publicPath参数位置,该参数可以是以页面为基准的相对地址,也可以是以根目录为基准的绝对地址.url-laoder会在这个地址下兴建一个im

react&webpack使用css、less && 安装原则 --- 从根本上解决问题。

在webpack-react项目中,css的使用对于不同人有不同的选择,早起是推荐在jsx文件中使用 css inline js的,但是这种方法要写很多对象来表示一个一个的标签,并且对于这些对象,我们在写样式时,还必须要使用驼峰式的写法,所以,这无疑使我们不能接受的,最好的做法就是讲css文件写在一个单独的文件夹中外联进来. webpack同时也是可以将css文件当做一个一个的模块的,所以,我们就需要对css模块的处理进行配置. npm install css-loader style-load

IE9的大css文件截断问题

最近做项目调试IE9的兼容性,遇到问题,样式应用不上去,在其他浏览器中是正常的. 经过查找,判定是IE9的css截断问题. 1. IE9截断判定方法 1. 打开IE Developer Tools,在网络面板,进行捕获,抓取到的css文件是完整的2. 打开IE Developer Tools的HTML面板,在右侧样式面板中,点击最右侧对应的该css文件, 或者在css面板中选择该css文件,将滚动条拉到底,可以看到css文本是否解析完整 2. IE9截断文件大小 这个没有明确的标准. 一个说法是

webpack4对第三方库css,项目全局css和vue内联css文件提取到单独的文件(二十二)

在讲解提取css之前,我们先看下项目的架构如下结构: ### 目录结构如下: demo1 # 工程名 | |--- dist # 打包后生成的目录文件 | |--- node_modules # 所有的依赖包 | |--- app | | |---index | | | |-- views # 存放所有vue页面文件 | | | | |-- index.vue | | | | |-- list.vue | | | |-- components # 存放vue公用的组件 | | | |-- js

webpack配置:css文件打包和JS压缩打包

一.CSS文件打包 1.在src下新建css文件,在css文件下新建index.css文件,输入以下代码 body{ color:red; font-size:20px; } 2.css建立好后,需要引入到入口文件,这里我们引入到index.js中 import css from './css/index.css'; document.write("It works."); 3.在终端安装style-loader和css-loader 4.安装好后,我们开始在webpack.confi

vue项目用webpack打包后运行后找不到.ttf及.woff文件

webpack.base.config 文件中 修改前: { test: /\.css$/, use: ExtractTextPlugin.extract({ use: ['css-loader?minimize', 'autoprefixer-loader'],fallback: 'style-loader' }) }, { test: /\.less$/, use: ExtractTextPlugin.extract({ use: ['css-loader?minimize','autopr

vue引入css文件报错Unrecognised input

一个vue项目中用到了swiper插件,引入swiper.css时报错 显示引入的css文件Unrecognised input ,在文件的line4,column12 . 其实是引入位置不对,样式文件应该在style标签中引入而不是script下引入 解决问题! 原文地址:https://www.cnblogs.com/changzz/p/10478597.html

webpack css文件编译、自动添加前缀、剥离

1.css文件编译 webpack默认只能编译js文件,引入css需要loader支持 // css文件写入js中 npm i style-loader -D // css文件loader npm i css-loader -D webpack.config.js的rules中添加 { test: /\.css$/, use:['style-loader', 'css-loader'] } 2.css自动添加前缀 // postcss-loader 可以给css自动添加-webkit -ms前缀