初始化包 -- `npm init -y`
新建入口文件 -- index.js
新建核心代码模块 -- init.js
新建配置清单 -- config.json
新建index.html 与 404.html
引入模块 -- path、fs
书写核心业务逻辑
{
"rootName" : "mydemo",
"data" : [
{
"name" : "img",
"type" : "dir"
},
{
"name" : "js",
"type" : "dir"
},
{
"name" : "css",
"type" : "dir"
},
{
"name" : "index.html",
"type" : "file"
},
{
"name" : "404.html",
"type" : "file"
}
]
}
// 实现初始化工作
const cfg = require('./config.json');
const path = require('path');
const fs = require('fs')
// 获取根目录
let rootName = cfg.rootName;
// 初始化函数
let init = () => {
fs.mkdir(path.join('./', rootName), (err) => {
if (err) {
console.log("创建根路径失败");
return;
}
cfg.data.forEach(obj => {
if (obj.type == 'dir') {
fs.mkdir(path.join('./', rootName, obj.name), (err) => {
if (err) {
consle.log("创建子目录失败");
return;
}
console.log(`${obj.name}目录创建是成功`)
})
}else if (obj.type == 'file') {
fs.readFile(path.join(__dirname,obj.name),(err, data) => {
if (err) {
console.log("读取文件失败");
return;
}
fs.writeFile(path.join('./',rootName, obj.name),data, (err) => {
if (err) {
console.log("创建文件失败");
return;
}
console.log(`${obj.name} 文件创建成功`);
})
})
}
})
})
}
// init();
exports.init = init;
// 入口文件
const obj = require('./init.js');
let param = process.argv[2];
switch(param){
case '-i':
obj.init();
break;
case '-h':
console.log('帮助信息');
break;
case '-v':
console.log('1.0.0');
break;
}
1.在命令行里面输入node .
2.如果不输入node . ,可以吗,是可以的
先查看使用node版本,比如是6.9.1
打开目录C:\dev\nvm\v6.9.1\node_modules
将写的文件夹放到里面
在外面随便复制一个cmd格式的修改 ,命名为init.cmd
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\node_modules\wjj\index.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\node_modules\wjj\index.js" %*
)
然后在外面命令行输入init就可以了
而且还支持init -v init -h
而且是当前目录创建哦,因为改成了./