在webpack中使用postcss之插件包precss

precss是一个预处理css的插件包,集成了很多postcss插件的功能,比如嵌套,变量,继承,混合,循环,判断。下面来介绍如何在webpack中使用precss。
一、新建项目
1、新建package.json

#自动生成package.json文件
npm init

2、新建webpack.config.js

module.exports = {
  entry: "./main.js",
  output: {
    path: __dirname, // __dirname是node.js中的一个全局变量,它指向当前执行脚本所在的目录。
    filename: "bundle.js"
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          ‘style-loader‘,
          { loader: ‘css-loader‘, options: { importLoaders: 1 } },
          ‘postcss-loader‘
        ]
      }
    ]
  },
  devtool: "inline-source-map"
}

3、新建postcss.config.js

module.exports = {
  plugins: [
    require(‘precss‘),
    require(‘autoprefixer‘)
  ]
}

4、新建index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>postcss的插件包precss</title>
</head>
<body>
    <div class="vars">变量</div>
    <div class="nested">
      <p>嵌套</p>
      <strong>粗体加黑</strong>
    </div>
    <div class="mymixin">混合</div>
    <div class="extended2">继承</div>
    <div class="ani">引入,鼠标放上来</div>
    <div class="condition">条件</div>
    <script type="text/javascript" src="bundle.js"></script>
</body>
</html>

5、新建css/imported.css,css/style.css

/* imported.css */
body {
  background: red;
}
.ani {
  width: 400px;
  height: 50px;
  background: yellow;
  transition: width 2s;
}
.ani:hover {
  width: 800px;
}

/* style.css */
@import ‘./imported.css‘;
*{
  text-align:center;
  margin:0;
  padding:0;
}
$color: #CA1F2D;
.vars{
  line-height:30px;
  background:$color;
  color:white;
}
.nested{
  background:#FFA500;
  padding: 8px 0;
  p{
    margin-top:0;
    color:white;
  }
  strong{
    font-weight:normal;
    &:after{
      content:‘这是粗体的after伪类‘;
      margin-left: 15px;
      color:grey;
    }
  }
}
%placeholder1{
  background: #00BD00;
  line-height: 35px;
}
.extended1{
  font-size: 15px;
  @extend %placeholder1;
}
@define-extend placeholder2{
  background: #00BD00;
  line-height: 35px;
}
.extended2{
  font-size: 18px;
  @extend placeholder2;
}
.placeholder3{
  background: #00BD00;
  line-height: 35px;
}
.extended3{
  font-size: 25px;
  @extend .placeholder3;
}
@define-mixin amixin $val:10px{
  .mymixin{
    color: yellow;
    padding: $val 0;
    @mixin-content;
  }
}
@mixin amixin{
  background: #00BBFE;
}
@mixin amixin 15px{
  font-weight: bold;
}

@define-mixin tcondition $val:5{
  .condition{
    background: #4169e1;
    @mixin-content;
    @if $val < 5{
      color: black;
    } @else {
      color: white;
    }
  }
}
@mixin tcondition{
  font-size: 12px;
}
@mixin tcondition 3{
  font-size:15px;
}
.for-tab{
  float: left;
  @for $i from 1 to 4 {
    .tab-$i {
      margin-right:5px;
      background:black;
      width: $(i)px;
    }
  }
}
.for-menu{
  @for $i from 1 to 5 by 2 {
    p:nth-of-type($i) {
      margin-left: calc( 100% / $i );
      background:black;
    }
  }
}

.each{
  $loveAnimal: dog, tiger, lien;

  @each $icon in $loveAnimal{
    .icon-$(icon) {
      /*background: url(‘icons/$(icon).png‘);*/
      background:#f00;
    }
  }
}

6、新建main.js

import ‘./css/style.css‘;

二、安装webpack的loader

cnpm i -D css-loader style-loader postcss-loader

三、安装postcss的插件

cnpm i -D precss autoprefixer

四、修改package.json文件

{
  "name": "mypcs",
  "version": "1.0.0",
  "description": "this is my first postcss project",
  "main": "main.js",
  "scripts": {
    "start": "webpack-dev-server --open",
    "build": "webpack-dev-server",
    "result": "webpack"
  },
  "repository": {
    "type": "git",
    "url": "mypcs"
  },
  "keywords": [
    "postcss"
  ],
  "author": "camille",
  "license": "ISC",
  "devDependencies": {
    "autoprefixer": "^7.1.4",
    "css-loader": "^0.28.7",
    "postcss-loader": "^2.0.6",
    "precss": "^2.0.0",
    "style-loader": "^0.18.2"
  }
}

五、运行代码

npm run start

六、刷新视图页面看效果

七、总结
本篇文章介绍了如何在webpack中使用postcss的插件包precss,从新建项目到运行代码,思路比较清晰,下面主要总结我遇到的抓狂问题和解决方案,以及问题带给我的新思考,希望自己每解决一个问题,都能触类旁通,举一反三。讨厌问题,但是不拒绝问题,更不惧怕问题,因为方法总是有的,只要肯钻研。

1、问题描述
一开始我随意取了个文件夹名mypcs2,开发结束时,觉得自己的包名不太美妙,就重命名文件夹mypcs以及修改package.json文件中的name值。重新运行代码,竟然出现很多报错,说无法解析某个loader。真是郁闷!!!明明之前就安装了各种依赖的loader,瞧,文件夹里loader都在呢,为啥这会儿就不行了呢?代码呀什么的,我都没改呀,就修改了包名和package.json文件中的name值,有啥错?
2、问题分析
事实证明,大错特错!!!因为安装loader的时候,是明确在mypcs2包里进行的。现在要运行mypcs包,自然要在mypcs包里安装各种loader。
3、解决方案
把原来的node_modules文件夹删掉,然后重新安装loader。
4、深度思考
如果是插件,也会遇到上述问题,所以这里温馨提示,一开始确定好包名后,就不要再动了。不要修改包名,也不要复制一个旧包,在旧包上修修改改,做新项目。每做一个新包,都要按规矩办事,从头开始!切莫投机取巧,表面省事,结果给自己挖了个大坑,然后还不知道怎么爬出来,唉!奈何postcss的问题文档如此少,还很简陋。
另外,注意包名规则,比如postcss已经存在,就不要再用它了,选个别的名字,比如我的包名mypcs。

时间: 2024-10-11 02:58:23

在webpack中使用postcss之插件包precss的相关文章

深入浅出的webpack构建工具---PostCss(五)

一:PostCss是什么?  PostCss是一个样式处理工具,它通过自定义的插件和工具生态体系来重新定义css.它鼓励开发者使用规范的css原生语法编写代码,然后配置编译器转换需要兼容的浏览器版本,最后通过编译将源码转换为目标浏览器可用的css代码. 它和stylus的不同之处是它可以通过插件机制灵活地扩展其支持的特性,不像stylus的语法是固定的,它的用途非常多,比如css自动加前缀,使用下一代css语法等等. postcss官方有很多插件,查看插件(https://github.com/

Webpack中的路径

webpack中涉及许多路径参数的配置.在此做个整理. context context是webpack编译时的基础目录,entry入口会相对于此目录查找. 若不配置,默认值是当前目录,webpack设置context.默认值代码: this.set("context", process.cwd()); 即webpack运行所在目录. context应该是绝对路径,假设入口是src/main.js,则可以设置 { context: path.resolve("./src&quo

webpack 中常用安装差件的命令

1:npm install html-webpack-plugin --save-dev //自动快速的帮我们生成HTML.2:npm install css-loader style-loader --save-dev//样式文件,我们需要两种loader,css-loader 和 style-loader,css-loader会遍历css文件,找到所有的url(...)并且处理.style-loader会把所有的样式插入到你页面的一个style tag中.3:npm install babe

webpack中的加载器

通过loader打包非js模块 在实际开发过程中,webpack 默认只能打包处理以.js 后缀名结尾的模块,其他非.js 后缀名结 尾的模块,webpack默认处理不,需要调用loader加载器才可以正常打包,否则会报错! loader加载器可以协助webpack打包处理特定的文件模块,比如: less-loader可以打包处理 .less相关的文件 sass-loader可以打包处理 .scss相关的文件 url-loader可以打包处理css中与url路径相关的文件 loader的调用过程

eclipse中(装了插件m2eclipse后的)导入maven工程显示&quot;感叹号&quot;

有时候导入一些开源工程(maven结构的),在eclipse中(装了插件m2eclipse后的)该工程前面会有一个小的红色感叹号,但点开工程后没有发现有打小红叉的内容,这种情况其实大部分是jar包依赖出来问题造成编译不能通过,如果有耐性可以在src里挨个点击代码打开,运气好的话就会发现有报错内容(import 包名 not resloved),找到对应的jar包在maven dependencies下点击相关jar包发现无法打开(正常加载的jar是可以展开目录结构的).如果怕查找src麻烦,也可

Sublime Text 3破解以及emmet(原Zen Coding)插件包安装方法

一直听说Sublime Text是一款十分好用的文本编辑器,因为它不仅有超快的启动速度,简洁漂亮的操作界面同样深受web前端开发人员的喜爱,能够提高我们的开发效率.今天就来试一试Sublime Text 3,这是Sublime Text的最新的build 3065版.我向来对一个软件是不用就算了,用就要尝试它的最新版本,从而体验这个软件的好处. 这是Sublime Text 3官方下载地址 请根据自己的系统进行选择 首先去官网下载软件,你喜欢二手的(绿化版)?先问度娘吧.这个软件其实是无限免费试

Eclipse中的一个小插件easyExplorer--用于打开文件所在目录

最近格式化了硬盘,里面的诸多有价值的插件都没了,开发时需要打开java文件所在的目录,每次都很麻烦,实在无法忍受,就又重新下载了一个小插件,用以很方便的打开文件所在目录: easyExplorer 仅有7kb 一:官方下载地址: http://sourceforge.net/projects/easystruts/ 由于天朝网络问题,等个大概十来秒的时间出现下图: 二:配置方式: 直接将下载后的文件:org.sf.easyexplore_1.0.4.jar复制到eclipse下的plugins下

[WebOS]基于JS的HP-WebOS开发中Eclipse安装Aptana插件时报"Bad Gateway"错误解决方案

进入Aptana官网:http://www.aptana.com/ 跳转到下载页面,选择下载Eclipse plugin installation, 发现官网只给出在线更新的网址: http://download.aptana.com/studio3/plugin/install 但是试过在线更新的童鞋都知道这是多么蛋疼的事情,于是,google到解决方法: 复制在线更新链接,在浏览器打开,你会看到会自动跳转到: http://d1iwq2e2xrohf.cloudfront.net/tools

Sublime Text 2安装汉化破解、插件包安装教程

Sublime Text 2安装汉化破解.插件包安装教程 听语音 | 浏览:41326 | 更新:2014-04-04 20:43 1 2 3 4 5 6 7 分步阅读 Sublime Text作为一款轻量.简洁.高效.跨平台的编辑器.支持N多种语言,受工程师所爱!这里教大家如何安装破解Sublime Text 2.0.2,并教大家如何安装包控制器(package control)和安装插件(Emmet.SublimeLinter.jQuery等插件) 工具/原料 Sublime Text 2.