zoukankan      html  css  js  c++  java
  • 前端项目工程化 -- 自动化构建初体验

    使用sass模块编译scss文件

    通常我们在项目中使用sass/scss都可以使用loader来处理,但是如果我只是简单的想用sass做一个静态页面,并不想要更多的配置内容,这时可以这么办:

    • 我们需要一个html文件,一个scss文件夹

    • 然后初始化package.json

    npm init -y
    
    • 安装sass模块
    npm install sass --dev
    
    • 使用sass模块编译scss文件
    .
    ode_modules.binsass sass/main.scss css/style.css
    
    • 其中. ode_modules.binsass是sass的cmd文件的位置,sass/main.scss是输入的文件路径,css/style.css是编译后输出的文件的路径

    • 当然直接输入这些复杂的命令是不合适的,可以在package.json中添加scripts命令

    "scripts:{
      "build":"sass scss/main.scss css/style.css"
    }
    

    上面这样添加了scripts后,可以直接运行npm run build来编译scss文件

    使用browser-sync来启动测试服务器

    上面知道怎么编译scss文件了,但是每次更新代码需要手动执行命令,不方便,怎么办?

    我们可以使用browser-sync来启动测试服务器,然后动态监听文件变动,就不再需要每次更改代码都去执行命令了,具体操作往下看:

    • 安装browser-sync
    npm install browser-sync --dev
    
    • 添加scripts
    "scripts:{
      "build":"sass scss/main.scss css/style.css --watch",
      "preserve":"npm run build",
      "serve":"browser-sync ."
    }
    

    上面的scripts中,首先添加了一个键serve,作用是启动browser-sync,其中的“.”是指的当前项目的根目录
    然后添加了键preserve,是一个预启动项,是在每次serve命令执行时,都会优先执行preserve命令来进行build
    同时还为build添加了--watch参数,表示动态监听scss文件的改动,只要scss/main.scss文件发生更改,就会自动进行编译

    • 运行命令

    通过上面的scripts,当我们运行npm run serve时,因为watch,命令行会阻塞并等待文件的更改,这样会导致browser-sync无法直接工作。需要同时执行多个任务的情况,我们可以使用npm-run-all模块

    npm install npm-run-all --dev
    

    此时我们的scripts需要更改一下:

    "scripts:{
      "build":"sass scss/main.scss css/style.css --watch",
      "serve":"browser-sync .",
      "start":"run-p build serve"
    }
    

    上面代码通过start命令来同时执行build和serve命令

    此时运行npm run start后,再去更改scss文件的内容,会发现css目录中的style.css文件也再同步变化,但是还有一个问题,就是,虽然css代码同步变化了,但是页面中的显示并没有同步变化,所以还少了点什么,对,我们可以让browser-sync也动态监听文件变动,这样就可以让页面也同步更新了

    • 让browser-sync同步文件变动到页面

    这一步只需要改动serve命令就可以了:

    "scripts:{
      "build":"sass scss/main.scss css/style.css --watch",
      "serve":"browser-sync . --files "css/*.css"",
      "start":"run-p build serve"
    }
    

    上面代码为serve命令添加了一个参数--files "css/*.css",这样可以监听css目录下的所有以.css结尾的文件的改动,并同步到页面中

  • 相关阅读:
    文艺青年会看这本《迷局》么?
    看文艺青年怎么玩微信客户端
    Sublime Text有哪些使用技巧(转)
    C++ 关键字 explicit, export, mutable
    move语义和右值引用
    C++11 std::function用法
    function adapter(函数适配器)和迭代器适配器
    for_each()的返回值
    C++11的一些新特性
    setw和setfill控制输出间隔
  • 原文地址:https://www.cnblogs.com/MissSage/p/14899291.html
Copyright © 2011-2022 走看看