zoukankan      html  css  js  c++  java
  • 前端自动化工作流环境

    可以避免重复操作
    前端开发的编译操作
     
    一.Node环境
    Node.js 不是一个js文件,也不是一个JS框架。
    而是 Server side Javascript runtime 服务器端javascript运行时
     
    nodeJS分支
    io.js 社区的产物 15年又合并了 后来又拆开了
    Node 4.x == 官方的
    node 5.x == io.js
     
    1.直接安装:
    Mac
        官网下载 下一步完成 终端 node -v npm -v
    windows
        官网下载 下一步完成 cmd path 看环境变量 node -v npm -v
     
    2.NVM 安装:
    Nvm node版本管理工具 node version manager
    可以快速切换node.js版本
     
    环境变量
     操作系统提供的系统级别存储的变量
     系统变量:所有当前系统用户共享的变量
     用户变量:当前用户的变量,不区分大小写,变量可以嵌套 %temp% = %abc%jsdkfls
     PATH变量:路径的引用,只要添加到PATH变量中 就可以再任何目录下搜索
     
    3.Node用途
     3.1 开发web应用程序 动态网站 开发提供数据的服务端API
     3.2 前端开发工具基础 主要用这个实现自动化
     
    在终端中 输入node 可以进入REPL环境(控制台环境) 可以执行js代码
     
    node webserver demo
    终端 cd 进入js目录 node js名 执行服务器监听8080端口
     
    'use strict' //启用严格模式
     
    //创建一个http服务器
    var http = require('http');
     
    //创建一个服务
     
    var server = http.createServer(function(request,response){
        //处理请求和响应     
        response.writeHead(200,{
            'Content-Type':'text/html',
            'key1':'val1'
        });
        response.write('<h1>write</h1>');
        response.end();
    });
     
    //启动服务
    server.listen(8080,function(error){
        console.log("listen 8080");
    });
     
    4.NPM Node Packge Manager (node 包管理)
    因为第三方的包非常之多,所以要有一个这样的包管理工具 可用来安装、卸载、更新包 类似nuget
    场景:需要一个包A,A依赖B,B依赖C 包之间的引用非常多 这时npm会自动检测依赖 全部拿下来
     
    安装包:打开终端->npm install {packge_name}
    移除:npm uninstall packge_name
     
    5.bower
    前端包管理工具 可以安装bootstrap jquery icons select2等前端包 没什么用 可以看看都有什么
     
    6.Gulp 
    自动化工具,将重复工作抽象成多个任务
    css压缩、js压缩、html压缩、图片尺寸优化
    如果慢用国内的 npm.taobao.org
    名字不要重名 
    1.在当前文件夹下 npm init 全部默认就行 创建个package.json
    2.npm install gulp —save-dev  //安装到项目
    3.安装成功后 在项目根目录中创建文件 gulpfile.js
    4.var gulp = require('gulp');gulp.task('default', function() {  // 将你的默认的任务代码放在这  console.log("hi gulp!");});
    gulp API:
     1.gulp.src('src/index.html')  .pipe(gulp.dest('dist/')) //复制到此处
     2.gulp.task('default', function() {}); //定义一个任务
     3.gulp.watch('src/index.html',['copy']);  //监听
     
    简单自动化:
    var gulp = require('gulp');gulp.task('copy', function() {  gulp.src('src/index.html')  .pipe(gulp.dest('dist/')) //复制到此处});gulp.task('dist',function(){    gulp.watch('src/index.html',['copy']);})
     
    当修改src/index.html 时 dist也发生改变
     
    插件:
     
    gulp-less: 编译less为 css文件
    gulp.task('less',function(){    gulp.src('src/style/*.less')    .pipe(less())    .pipe(gulp.dest('dist/css/'));});gulp.task('lesswatch',function(){    gulp.watch('src/style/*.less',['less']);});
     
    Gulp-concat: 合并文件
    Gulp-uglify :最小化js
    Gulp-rename:重命名文件
    Gulp-cssnano:最小化css文件
    Gulp-minify-html:最小化html
    Gulp-imagemin:最小化图像
     
    Browsersync:浏览器同步
    安装 npm install -g browser-sync
    检查 browser-sync --version
    执行 browser-sync start --server --files "**” 检测该目录下所有的文件改动
    代理模式 比如.net中的 localhost:6321
    browser-sync start --proxy “localhost:6321" --files "**”
     
    如果是host配置的域名则不可以 需要配置
      域名 端口 等 见API:
    browserSyncAPI:
    var gulp = require('gulp');
    var browserSync = require('browser-sync');

    gulp.task('browser-sync', function() {
        browserSync({
            files: "**",
            server: {
                baseDir: "./"
            }
        });
    });

    gulp.task('default', ["browser-sync"]);
     
     
    8.grunt 在运行的时候会产生很多临时文件,gulp则不会 ,一样的东西。
     
     
     
     
     
  • 相关阅读:
    Android中的Handler, Looper, MessageQueue和Thread
    ANR程序无响应原因及应对办法
    避免内存泄露的一些简单方法
    android内存泄露及OOM介绍
    listview异步加载图片优化
    利用convertView及viewHolder优化Adapter
    Sqlite介绍及其语句
    关于单页面和传统页面跳转的思考
    快速入门Vue
    JS编码
  • 原文地址:https://www.cnblogs.com/baidawei/p/8665256.html
Copyright © 2011-2022 走看看