Closed xgqfrms-GitHub closed 1 year ago
Node.js CLI 一: 开发一个 Node.js CLI 工具
必选项:
加分项:
# link `nct` to cli commands
$ npm i
$ npm link
# parameters can be ignore
$ nct [user_name, [repo_name]]
$ nct user_name repo_name
$ nct
$ nct xgqfrms react
nct
nct xgqfrms react
# link `nct` to cli commands
$ npm i
$ npm link
# parameters can be ignore
$ nct [user_name, [repo_name]]
$ nct user_name repo_name
"bin": {
"rmrf": "rm-rf.js",
"bin_comments": "no need .js extends name!",
"npm_cli_commands": "npm i & npm link"
},
#! /usr/bin/env node
/**
* [rmrf : node cli tools]
* @author: xgqfrms
* @date: 2017-01-01
*/
const path = require('path');
const rimraf = require('rimraf');
console.log(`hello world!`);
let folder_pathname = path.resolve(__dirname, "dist/js");
// https://github.com/isaacs/rimraf#api
// rimraf(f, [opts], callback);
rimraf.sync(folder_pathname, {}, function(){
// callback
console.log("this is a rmrf callback!");
});
// rimraf.sync(__dirname + '/target');
// fs.readFileSync(__dirname + '/src/template.ejs', 'utf-8')
// path: path.resolve(__dirname, "build/public/"),//主目录
// rimraf dist
# link `nct` to cli commands
$ npm i
$ npm link
# parameters can be ignore
$ nct [user_name, [repo_name]]
$ nct user_name repo_name
{
"name": "webpack-demo",
"version": "1.0.0",
"description": "Working demo of CSS Modules, using Webpack's css-loader in module mode.",
"module": "webpack.config.js",
"main": "index.js",
"scripts": {
"test": "webpack",
"start": "webpack-dev-server",
"clean": "rm -rf dist",
"clear": "rimraf dist",
"build": "npm run clean && webpack",
"deploy": "npm run build && gh-pages -d dist -m \"Updates --skip-ci\"",
"linux_rmrf": "rm -rf build/public",
"windows_clear": "rimraf build/public",
"rmrf": "node rm-rf.js"
},
"bin": {
"rmrf": "rm-rf.js",
"bin_comments": "no need .js extends name!",
"npm_cli_commands": "npm i & npm link"
},
"author": "Mark Dalgleish",
"license": "MIT",
"devDependencies": {
"rimraf": "^2.6.2",
"autoprefixer-core": "^5.1.11",
"babel-core": "^5.2.17",
"babel-loader": "^5.0.0",
"css-loader": "^0.15.1",
"ejs": "^2.3.1",
"extract-text-webpack-plugin": "^0.8.1",
"file-loader": "^0.8.4",
"gh-pages": "git://github.com/markdalgleish/gh-pages#cli-message",
"node-libs-browser": "^0.5.0",
"postcss-color-rebeccapurple": "^1.1.0",
"postcss-loader": "^0.4.3",
"raw-loader": "^0.5.1",
"react": "^0.13.3",
"react-to-html-webpack-plugin": "^2.2.0",
"style-loader": "^0.12.3",
"url-loader": "^0.5.6",
"webpack": "^1.9.10",
"webpack-dev-server": "^1.9.0"
}
}
update
// package.json
{
"scripts": {
"clean": "rm -rf dist",
"clear": "rimraf dist"
},
"bin": {
"rmrf": "rm-rf.js",
"npm_cli_commands": "npm i & npm link"
},
"author": "xgqfrms",
"license": "MIT",
"devDependencies": {
"rimraf": "^2.6.2"
}
}
open vs-code in cmd!
code .
(one space)
bash shell
shell scripts
shell colors
{
"name": "node-cli-tools",
"version": "1.1.1",
"private": true,
"bin": {
"nct": "nctcli"
},
"scripts": {
"nct": "node nctcli",
"start": "node nctcli"
},
"dependencies": {
"colors": "^1.1.2",
"node-fetch": "^1.7.1"
}
}
rmrf & clear build / dist folder caches
https://www.npmjs.com/package/rimraf
$ yarn add -D rimraf
# OR
$ npm i -D rimraf
{
"clear": "rm -rf dist",
"rmrf": "rimraf dist"
}
{
"clear": "rm -rf build/**/*.js",
"rmrf": "rimraf build/**/*.js"
}
#!/usr/bin/env bash
# echo "^-v-^ cleaning files ..." && yarn clean
# echo "^-v-^ cleaning files ..." && rm -rf ./docs/*
# no yes/no ??? bug
# echo "^-v-^ cleaning files ..." && rm -Rf ./docs/*
echo "^-v-^ cleaning files ..." && rimraf ./docs
# echo "^-v-^ cleaning files ..." && rimraf ./docs/*.*
# echo "^-v-^ cleaning files ..." && rimraf ./docs/**/*.*
shx rm -rf ./dist/*
$ npm i -D shx
shx
is a wrapper around ShellJS
Unix commands, providing an easy solution for simple Unix-like, cross-platform
commands in npm package scripts
.
https://www.npmjs.com/package/shx
"scripts": {
"clean": "shx rm -fr dist/*",
"rmrf": "rimraf dist/*",
},
bin & cli &
rm -rf
https://github.com/gildata/RAIO/issues/211#issuecomment-346781276
https://github.com/gildata/RAIO/issues/211#issuecomment-346924503