初始化項目
在建項目的時候經常會建很多文件夾和文件,今天使用node初始化項目自動生成這些內容。
執行步驟
- 執行命令
node init
初始化項目生成package.json - 設置配置文件
var fs=require('fs');
var path=require('path');
module.exports.structure={
rootName:'item',
fileData:[
{
name:'images',
type:'dir'
},
{
name:'css',
type:'dir',
fileChild:
{
name:'index.css',
type:'file',
content:'@charset utf-8;'
}
},
{
name:'js',
type:'dir',
fileChild:
{
name:'index.js',
type:'file',
content:'/* Created by jines */'
}
},
{
name:'index.html',
type:'file',
//讀取文件內容
content:fs.readFileSync(path.join(__dirname,'index.html'))
},
{
name:'404.html',
type:'file',
//讀取文件內容
content:fs.readFileSync(path.join(__dirname,'404.html'))
}
]
}
- 初始化項目
/*
初始化項目
*/
const fs=require('fs');
const path=require('path');
const structure=require('../config.js').structure;
let rootName=path.join('./',structure.rootName);
module.exports=function(){
if(rootName){
//創建根目錄
fs.mkdir(rootName,function(){
structure.fileData.forEach(function (item) {
if(item.type=='dir'){
//創建文件夾
fs.mkdir(rootName+'/'+item.name,function(){
for(var k in item){
//判斷子文件中是還有文件,如果有則創建
if(typeof item[k]=='object' && item[k].type=='file'){
fs.writeFileSync(rootName+'/'+item.name+'/'+item[k].name,item[k].content,'utf-8')
}
}
})
}else if(item.type=='file'){
//創建文件
fs.writeFileSync(rootName+'/'+item.name,item.content,'utf-8')
}
})
})
}
}
- 入口文件 index.js
'user strict'
//process.argv包含命令行參數的數組。
//第一個元素是node的路徑,
//第二個元素是js文件的當前路徑。
//第三個元素是命令行的參數。
const args=process.argv.slice(2);
const param=args[0];
const init=require('./command/init.js');
switch(param){
case 'init':init();
break;
case '-v' :console.log('版本信息');
break;
default: console.log('幫助信息');
break;
}
- 執行命令
node index.js init
生成文件
文件目錄如圖所示
- 將該項目拷貝到node的安裝目錄下
C:\dev\nvm\v6.5.0\node_modules
如圖所示
- 在此
C:\dev\nvm\v6.5.0
路徑下新建文件item.cd並寫入如下代碼:
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\node_modules\item\index.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\node_modules\item\index.js" %*
)
如圖所示
- 最后就可以在全局執行
item init
命令初始化項目