• 2、extract-text-webpack-plugin提取Sass编译的Css


    cnpm install css-loader --save-dev    //css-loader 是将css打包进js

    cnpm install style-loader --save-dev  //style-loader 将css通过require方式引入进来

    cnpm install sass-loader node-sass  --save-dev //同时安装sass 和sass-loader

    cnpm install extract-text-webpack-plugin --save-dev //把css从js中提取出来

    以下实现的效果是将sass打入js的同时也将其从中提取出来

    目录结构(publi为src编译生成的文件

    html

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
        </head>
    <link rel="stylesheet" type="text/css" href="public/css/index.css" />    
        <body>
                <div id="app">6r</div>
                <p id="demo">456</p>
        </body>
        <script type="text/javascript" src="public/js/index.js"></script> 
         <!-- assets是通过publicPath虚构出来的暂存空间,它不直接在硬盘内存中,通过webpack-dev-server来运行 -->
    </html>

    index.scss

    $col:pink;
    @import "./demo"; //导入css
    body{
     font-size: 900%;
      #app{color:$col;}
    }

    demo.css

      #demo{color:blue;}

    index.js

    var $ = require('../../node_modules/jquery');
    //loader-css
    require("../css/index.scss"); 
    
    $('#app').html("1334");
    $("#app").click(function(event){
            alert(123)
        });

     webpack.config.js 

    var webpack = require("webpack");
    var webpckDevServer  = require("webpack-dev-server");
    var ExtractTextPlugin = require('extract-text-webpack-plugin');//抽离css插件
    var extractCss = new ExtractTextPlugin("css/index.css");//实例化,并并填写输出的一个路径[]中表示输出默认名称,这个目录相对于提出的那个目录
    module.exports={
        entry: __dirname +"/src/js/index.js",//入口文件 webpack-dev-server 实时刷新监控的目录
        output:{
            path: __dirname +"/public/", 
    
            filename: "js/index.js",
            publicPath: '/assets/'//打开webpack-dev-server 服务器工具时可以再index里面引用此地址,打开速度会快一点,另外他不是直接在内存中存放而是先在webpack的虚拟内存中暂存,所以在webpack未编译之前能够运行,如果直接写实体目录则不经过webpack打包编译,浏览器是识别不了的,所以先放在这个虚拟目录里,因为是虚拟目录,所以你看不到他的编译文件
        },
        devServer:{
            contentBase:"./",//根目录
            host:'192.168.199.171',//ip设置 要相对的进行改变
            port:"80",//端口
            colors:true,
            open:true//自动打开浏览器   
        },
        module:{
            loaders:[
                {  test:/.css$/,//匹配.css文件
                   loader : ExtractTextPlugin.extract("style-loader", "css-loader")
                },
                 {
                    test: /.scss$/,
                    loader: ExtractTextPlugin.extract("style-loader", "css!sass")            }     
            ] 
        },
        plugins:[
               extractCss
        ]
    }

    package.json

    {
      "name": "webp2",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "www": "cnpm run demo && cnpm run devServer",
        "demo": "webpack --watch --progress -d -p --color",
        "demo2": "webpack --config webpack.config123.js --watch --progress -d -p --color",
        "start": "webpack --watch --progress -d -p --color",
        "devServer": "webpack-dev-server --inline --hot"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "css-loader": "^0.26.1",
        "extract-text-webpack-plugin": "^1.0.1",
        "jquery": "^3.1.1",
        "node-sass": "^4.0.0",
        "sass-loader": "^4.1.0",
        "style-loader": "^0.13.1",
        "webpack": "^1.14.0",
        "webpack-dev-server": "^1.16.2"
      }
    }
  • 相关阅读:
    AWS IoT Greengrass:配置安装 AWS CLI
    AWS IoT Greengrass:如何使用 AWS 管理控制台配置本地资源访问
    AWS IoT Greengrass 入门-模块6: 访问其他 AWS 服务
    AWS IoT Greengrass 入门-模块5:与设备影子交互
    AWS IoT Greengrass 入门-模块4:在 AWS IoT Greengrass 组中与设备交互
    AWS IoT Greengrass 入门-模块3(第 2 部分):AWS IoT Greengrass 上的 Lambda 函数
    Nginx 启动报错 (nginx: error while loading shared libraries: XXX: cannot open shared object file: No such file or directory ) 的解决办法
    自己制作一个简单的操作系统二[CherryOS]
    Linux-误删apt-get以及把aptitude换回
    完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存
  • 原文地址:https://www.cnblogs.com/Model-Zachary/p/6187356.html
Copyright © 2020-2023  润新知