博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[NPM] Create a node script to replace a complex npm script
阅读量:7112 次
发布时间:2019-06-28

本文共 2324 字,大约阅读时间需要 7 分钟。

In this lesson we will look at pulling out complex npm script logic into an external JavaScript file. Instead of writing bash scripts you can leverage your JavaScript abilities to automate your build process. We’ll use some helper node modules such as shelljs, opn-cli, and babel-cli.

 

Install:

npm i -D shelljs babel-cli

 

From:

"test": "BABEL_ENV=test mocha spec/ --require babel-register",

 

To:

1. create a "scripts/test.js" file.

2. Add content:

import { exec } from "shelljs";const isWindows = process.platform === "win32";const environment = isWindows ?    "set BABEL_ENV=test&&" :    "BABEL_ENV=test";exec( `${ environment } mocha spec/ --require babel-register` );

3. Change package.json

"test": "babel-node ./scripts/test.js",

 

From:

"build": "npm-run-all build:*",    "prebuild": "rm -rf public/$npm_package_version",    "build:html": "pug --obj data.json src/index.pug --out public/$npm_package_version/",    "build:css": "node-sass src/index.scss | postcss -c .postcssrc.json | cssmin > public/$npm_package_version/index.min.css",    "build:js": "mustache data.json src/index.mustache.js | uglifyjs > public/$npm_package_version/index.min.js",

 

To:

1. create "scripts/build.js".

2. Add content:

import { rm, exec } from "shelljs";const version = process.env.npm_package_version;rm( "-rf", `public/${ version }` );exec( `pug --obj data.json src/index.pug --out public/${ version }/` );exec( `node-sass src/index.scss | postcss -c .postcssrc.json | cssmin > public/${ version }/index.min.css` );exec( `mustache data.json src/index.mustache.js | uglifyjs > public/${ version }/index.min.js` );

3. Change package.json:

"build": "babel-node ./scripts/build.js",

 

From:

"server": "npm-run-all --parallel server:*",    "server:create": "http-server public/$npm_package_version -p $npm_package_config_port",    "server:launch": "open http://localhost:$npm_package_config_port",

 

To:

1. Create "scripts/server.js".

2. Add content:

import { exec } from "shelljs";const {    npm_package_version: version,    npm_package_config_port: port} = process.env;exec( `http-server public/${ version } -p ${ port }`, { async: true } );exec( `opn http://localhost:${ port }` );

3. Change package.json file:

"server": "babel-node ./scripts/server.js",

 

Be careful that in Windows single quote doesn't work, we need to replace single quote to 

\"

 

转载地址:http://vpghl.baihongyu.com/

你可能感兴趣的文章
Java的类成员访问权限修饰词(以及类访问权限)
查看>>
Linux系统启动详解
查看>>
tomcat发布的项目访问隐藏项目名称
查看>>
利用CSS text-indent 实现段落首行缩进
查看>>
lwn拾遗:[sn3218 led drivers]-api解释-1
查看>>
浅析ceph rbd镜像类型差异
查看>>
elasticsearch配置文件详解
查看>>
一文深入了解Redis!
查看>>
js判断document.getElementByid("")获得的对象是否存在
查看>>
css实现水平居中和垂直居中及其浏览器兼容性
查看>>
Searching&Clustering
查看>>
19年 GSoC 中 Jenkins 的七个项目
查看>>
★商场上的十则寓言故事!
查看>>
static和extern对局部变量的作用
查看>>
实用的 Recipes
查看>>
Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
查看>>
Swift调用摄像头拍照或者录制视频
查看>>
js算法的技巧
查看>>
什么是MVVM
查看>>
jquery选择器
查看>>