使用Nodejs实现简单的自动化构建

自动化构建是现代前端基本都需要的东西,说起这个,大家自然会想到 Glup/Grount这些自动化的构建工具.

当然,本文只是从最最基础的角度,使用Node的fs模块进行了简单的文档的写入操作.

首先,我们先定义一个JSON,用于存放我们想要预先定义的文件夹的内容,比如说,我想要我的文件夹名称为ProjectModule ,里面的文件夹有 css / js / img 还有一个 index.html,同时定义好index文件中的内容

那么我的JSON结构可以这样写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var projectData = {
'name' : 'ProjectModule',
'fileData': [
{
'name': 'css',
'type': 'dir'
},
{
'name': 'js',
'type': 'dir'
},
{
'name': 'img',
'type': 'dir'
},
{
'name': 'index.html',
'type': 'file',
'content': '<html>\n\t<head>\n\t<title>MyProject</title>\n\t</head>\n\t<body>\n\t</body>\n</html>'
}
]
}

接下来,就是引入fs模块

1
var fs = require('fs')

因为这里是要实时创建的,我们可以直接使用同步的操作,就省去了异步需要使用回调函数的麻烦

当然,开始之前,要先确定一下,JSON是否有正常的给出文件夹的名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
if(projectData.name) {

fs.mkdirSync(projectData.name)

var fileData = projectData.fileData

fileData.forEach(function(f) {

f.content = f.content? f.content : ''

f.path = projectData.name + '/' + f.name

switch (f.type) {

case 'dir':
fs.mkdirSync(f.path)
break;
case 'file':
fs.writeFileSync(f.path, f.content)
break;
default:
break;
}
})
}

如果使用的是webstorm, 那么直接使用ctrl+f9, 让你的node程序跑起来吧~

文章目录
|