前端自动化 shell 脚本命令 与 shell-node 脚本命令 简单使用 之 es6 转译

(背景: 先用 babel 转译 es6 再 用 browserify 打包 模块化文件,来解决浏览器不支持模块化 )
(Browserify是一个让node模块可以用在浏览器中的神奇工具)

今天折腾了一上午,对于前端好多自动化管理的命令用起来,步骤甚多,故想写一个脚本文件,将项目所需要执行到命令 都 写在一个脚本文件中,在命令行 只需写一个命令即 完成所有事情。
配置的环境: node + git
1.第一步:在项目根目录下 新建 package.json 配置文件

{
  "name": "shell-node",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "es": "babel src/js -d build",
    "browserify": "browserify build/index.js > bundle.js",
    "build": "npm run es && npm run browserify"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.0.0",
    "babel-core": "^6.23.1",
    "babel-polyfill": "^6.23.0",
    "babel-preset-es2015": "^6.22.0"
  }
}

("这些脚本可以是行内bash命令,或者也可以指向可执行的命令行文件。你还可以在脚本内引用其他npm脚本");
一:shell 脚本 :
文件名:test.sh 位置:项目根目录

#!/bin/bash
#the first program
echo -e "\e[1;34m hello shell \e[0m"
npm run es && npm run browserify

shell 脚本运行 : bash test.sh

二:shell-node 脚本
注:用 js 语法写的 命令行 脚本
文件名:hello.sh 位置:项目根目录

#!/usr/bin/env node
console.log(‘hello world!‘);
.....

在项目根目录 打开 git bash ,可在 package.json 中 添加 这样一段 bin 代码:

"bin":{
    "hello": "./hello.sh"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "es": "babel src/js -d build",
    "browserify": "browserify build/index.js > bundle.js",
    "build": "npm run es && npm run browserify"
  },

命令行 输入 , npm link 可以全局使用, 使用 时 ,在 命令行 直接 输入 hello 即可 执行 此 脚本文件。
<h5>移除此 全局命令 :</h5>在此脚本文件的根目录 打开 git bash 命令行 输入: npm remove -g

三:‘onchange 插件 监视 文件变化 自动执行 脚本的合并任务‘
package.json 配置 如下:

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "es": "babel src/js -d build",
    "browserify": "browserify build/index.js > bundle.js",
    "build": "npm run es && npm run browserify",
    "watch": "onchange src/js/*.js -- npm run build"
  },
  "devDependencies": {
    "onchange": "^3.2.1"
}

相关文章部分内容:
变更监控

至此,我们的任务不断的需要对文件做一些变更,我们不断的需要切回命令行去运行相应的任务。针对这个问题,我们可以添加一个任务来监听文件变更,让文件在变更的时候自动执行这些任务。这里我推荐使用onchange插件,安装方法如下:

npm i -D onchange

让我们来给CSS和JavaScript设置监控任务:

"scripts": {
  ...
  "watch:css": "onchange ‘src/scss/*.scss‘ -- npm run build:css",
  "watch:js": "onchange ‘src/js/*.js‘ -- npm run build:js",
}

这些任务可以分解如下:onchange需要你传参想要监控的文件路径(字符串),这里我们传的是SCSS和JS源文件,我们想要运行的命令跟在--之后,这个命令当路径内的文件发生增删改的时候就会被立即执行。
让我们再添加一个监控命令来完成我们的npm scripts构建过程。

再添加一个包,parallelshell:

npm i -D parallelshell

再次给scriopts对象添加一个新任务:

"scripts": {
  ...
  "watch:all": "parallelshell ‘npm run serve‘ ‘npm run watch:css‘ ‘npm run watch:js‘"
}

parallelshell支持多个参数字符串,它会给npm run传多个任务用于执行。

写在最后 :
开发环境里 将 jQuery 通过 npm 包管理工具下载,需要用到的文件顶部将其 引入 es6 引入 使用 :

import "babel-polyfill";
import $ from "jquery";
import {firstName, lastName, year} from ‘./profile‘;

$(‘h1‘).css({"color":"red"});
.....

package.json 最终 事例:

{
  "name": "shell-node",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "author": "",
  "license": "ISC",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "es": "babel src/js -d build",
    "browserify": "browserify build/index.js > bundle.js",
    "build": "npm run es && npm run browserify",
    "watch": "onchange src/js/*.js -- npm run build"
  },
  "devDependencies": {
    "babel-cli": "^6.0.0",
    "babel-core": "^6.23.1",
    "babel-polyfill": "^6.23.0",
    "babel-preset-es2015": "^6.22.0",
    "browserify": "^14.1.0",
    "jquery": "^3.1.1",
    "onchange": "^3.2.1"
  }
}

.babelrc 内容 事例:

{
    "presets": [
        "es2015"
    ],
    "plugins": []
}

最后 通过 上文 所阐述的 方法 将其 使用,提高 开发效率 : 用 babel 转译 再 用 browserify 将 js 打包 成 一个 js 文件 ,最终 html 引入 使用 。

原文地址:https://www.cnblogs.com/cangqinglang/p/10579087.html

时间: 2024-07-30 13:11:05

前端自动化 shell 脚本命令 与 shell-node 脚本命令 简单使用 之 es6 转译的相关文章

Nodejs随笔(二):像可执行shell脚本一样,运行node 脚本!

在每次编写nodejs脚本的时候,只需在程序的开头加上如下代码(写过shell脚本的人应该很熟悉): #!/usr/local/bin/node 同时,修改文件权限为可执行: [email protected]:~$ chmod u+x nodejsScriptName.js 随后,即可在终端中以./nodejsScriptName.js运行nodejs脚本.

前端自动化工具 grunt 插件的简单使用(一)

Grunt 的简介: Grunt 是一套前端自动化工具,是一个基于 node.js 的命令行工具,它一般用于: 1.压缩文件: 2.合并文件: 3.简单的语法检测: 4.监听文件变动: 5.less 编译: PS:Grunt 官网 (https://gruntjs.com/).Grunt  就像是一个工具箱,拥有非常丰富的任务插件,可以帮助开发人员实现各种各样目标任务的构建.在Grunt工具箱中,按目标任务类型我们可以分为: 1.编译文档型:比如编译 LESS.Sass.Stylus.Coffe

前端自动化构建工具

全局安装是把包安装在Node安装目录下的node_modules文件夹中,一般在 \Users\用户名\AppData\Roaming\ 目录下,可以使用npm root -g查看全局安装目录 本地(局部)安装是把包安装在指定项目(要在指定的根目录下输入命令)的node_modules文件夹下(若没有,会自动创建一个node_modules文件夹) 具体区别,推荐博文:  全局安装和本地(局部)安装的区别 本地安装可以让每个项目拥有独立的包,不受全局包的影响,方便项目的移动.复制.打包等,保证不

shell脚本介绍,shell脚本结构和执行方式,date命令的用法,shell脚本中的变量简介

笔记内容: 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量 笔记日期:2017-11-21 20.1 shell脚本介绍 Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的.但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令

shell,shell脚本结构和执行方法,data命令,shell脚本中的变量

shell是什么shell是一种脚本语言 aming_linux blog.lishiming.net可以使用逻辑判断.循环等语法可以自定义函数shell是系统命令的集合shell脚本可以实现自动化运维,能大大增加我们的运维效率 shell脚本结构和执行方法开头需要加#!/bin/bash以#开头的行作为解释说明脚本的名字以.sh结尾,用于区分这是一个shell脚本执行方法有两种chmod +x 1.sh; ./1.shbash 1.sh查看脚本执行过程 bash -x 1.sh查看脚本是否语法

shell脚本介绍,shell脚本结构和执行,date命令用法,shell脚本中的变量

Shell脚本介绍 shell是一种脚本语言 blog.lishiming.net(阿铭的博客,可以去里面找shell习题)可以使用逻辑判断.循环等语法可以自定义函数,减少重复代码shell是系统命令的集合shell脚本可以实现自动化运维,能大大增加我们的运维效率 Shell脚本结构和执行 开头需要加#!/bin/bash 以#开头的行作为解释说明 脚本的名字以.sh结尾,用于区分这是一个shell脚本写一个简简单的脚本#!/bin/bash#Linletao#2018-5-29echo llt

六十七、shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

一.shell脚本介绍 shell是一种脚本语言  aming_linux  blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 定义函数的目的:为了简化,为了减少重复的代码. shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 二.shell脚本结构和执行 脚本示例: #!/bin/bash echo "123" w ls 开头需要加#!/bin/bash,这个脚本在当前机器执行能识别里面的命令,换一台机器也许就不能

68.shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

一.shell是什么 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 二.shell脚本结构和执行方法 开头需要加#!/bin/bash 以#开头的行作为解释说明 脚本的名字以.sh结尾,用于区分这是一个shell脚本 执行方法有两种 chmod +x 1.sh; ./1.sh bash 1.sh 查看脚本执行过程 bash

手游公司运维之利用Rundeck自动化运维工具和Shell脚本构建测试环境代码发布平台和生产环境代码发布平台

在做手游运维工作之前,我接触的代码发布都是常规的软件发布,有固定的发布周期.之前工作的那个外企有严格的发布周期,一年中的所有发布计划都是由Release Manager来控制,每次发布之前都需要做一些准备工作,如填写发布表单,上传发布需要的资源文件,联系发布过程中的相关人员,如开发和测试.最后在公司内部开发的发布平台上按照指定的时间点击鼠标对一个集群内的几台主机或全部主机进行代码发布.这个发布平台还是基于rsync服务实现的.虽然每个星期都有各种服务的发布,但是整个发布流程是可以控制的,并且发布