本文整理匯總了TypeScript中mem-fs-editor.create函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript create函數的具體用法?TypeScript create怎麽用?TypeScript create使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了create函數的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: copyScaffold
private async copyScaffold (): Promise<any> {
const { proName, proPath, projectType, projectTypeTitle } = this.options
// 內存編輯器
const store = memFs.create()
const fsEditor = editor.create(store)
// 拷貝 project.common 腳手架模板
fsEditor.copyTpl(
util.getScaffoldPath(ScaffoldType.Project, 'common'),
proPath,
this.options,
null,
{
globOptions: {
dot: true
}
}
)
// 拷貝 project.type 腳手架模板
fsEditor.copyTpl(
util.getScaffoldPath(ScaffoldType.Project, projectType),
proPath,
this.options
)
return new Promise((resolve, reject) => {
// 保存
fsEditor.commit(() => {
log.newline()
log.msg(LogType.CREATE, `項目 "${proName}" in "${proPath}"`)
// 輸入拷貝 或 新增 的日誌信息
let files = glob.sync('**', {
cwd: proPath
})
files.forEach(file => log.msg(LogType.COPY, file))
log.msg(LogType.COMPLETE, `"${projectTypeTitle}"項目已創建完成`)
resolve()
})
})
}
示例2: newPage
/**
* 新建頁麵腳手架模板
*
* @param {NewData} newData
*/
private async newPage (newData: NewData) {
let { pageName } = newData
// 內存編輯器
const store = memFs.create()
const fsEditor = editor.create(store)
// page 目標地址
let destPagePath = util.getDestPagePath(pageName)
// 驗證 page 目標地址
if (fs.existsSync(destPagePath)) {
log.output(LogType.ERROR, `創建失敗,因為頁麵 "${pageName}" 已經存在`, destPagePath)
return
}
// 將 page 腳手架模板路徑下的文件拷貝到 page 目標路徑下
fsEditor.copyTpl(
util.getScaffoldPath(ScaffoldType.Page),
destPagePath,
newData
)
return new Promise((resolve, reject) => {
// 提交編輯器信息
fsEditor.commit(() => {
log.newline()
log.output(LogType.CREATE, `頁麵 "${pageName}"`, destPagePath)
// 輸入拷貝 或 新增 的日誌信息
glob.sync('**', {
cwd: destPagePath
}).forEach(file => log.msg(LogType.COPY, file))
log.msg(LogType.COMPLETE, `頁麵 "${pageName}" 創建完成`)
resolve()
})
})
}
示例3: constructor
constructor () {
const store = memFs.create()
this.fs = editor.create(store)
this.sourceRoot(path.join(getRootPath()))
this.init()
}
示例4:
import { Transform } from 'stream';
import * as memFs from 'mem-fs';
import * as editor from 'mem-fs-editor';
const store = memFs.create();
const fs = editor.create(store);
fs.write('template.js', 'var a = 1; console.log(\'<%= foo %>\', a);');
fs.append('template.js', 'var b = 2;');
fs.copy('template.js', 'template.tpl', {
globOptions: {
cwd: '.'
},
process: (contents) => contents
});
fs.copyTpl('template.tpl', 'output.js', {
foo: 'bar'
});
const obj = fs.readJSON('template.json');
fs.writeJSON('template.json', obj);
fs.writeJSON('template.json', 'qwer'); // should not be an error, because the parameter is passed to JSON.stringify and it accepts the string
// fs.extendJSON('template.json', 'qwer'); // should be an error, because it does not make sense to extend a json with string
// should accept both versions of commit - with filters and without:
const cb = (err: any) => ({adsf: 'adsf'});
fs.commit(cb);
示例5: newPackage
/**
* 新建組件腳手架模板
*
* @param {NewData} newData
*/
private async newPackage (newData: NewData) {
let { pkgName, pkgNameSuffix } = newData
// 內存編輯器
const store = memFs.create()
const fsEditor = editor.create(store)
// package 目標地址
let destPackagePath = util.getDestPackagePath(pkgName)
// page 目標地址
let destPagePath = util.getDestPagePath(pkgNameSuffix)
// 驗證 package 目標地址
if (fs.existsSync(destPackagePath)) {
log.output(LogType.ERROR, `創建失敗,因為組件 "${pkgName}" 已經存在`, destPackagePath)
return
}
// 驗證 page 目標地址
if (fs.existsSync(destPagePath)) {
log.output(LogType.ERROR, `創建失敗,因為頁麵 "${pkgNameSuffix}" 已經存在`, destPagePath)
return
}
// 將 package 腳手架模板路徑下的文件拷貝到 package 目標路徑下
fsEditor.copyTpl(
util.getScaffoldPath(ScaffoldType.Package),
destPackagePath,
newData,
null,
{
globOptions: {
dot: true
}
}
)
// 創建並寫入 package/.npmignore 文件
// fsEditor.write(
// util.getDestPackagePath(pkgName, '.npmignore'),
// 'test\n*.log\n'
// )
// 將 example 腳手架模板路徑下的文件拷貝到 page 目標路徑下
fsEditor.copyTpl(
util.getScaffoldPath(ScaffoldType.Example),
destPagePath,
newData
)
return new Promise((resolve, reject) => {
// 提交編輯器信息
fsEditor.commit(() => {
log.newline()
log.output(LogType.CREATE, `組件 "${pkgName}"`, destPackagePath)
// 輸入拷貝 或 新增 的日誌信息
glob.sync('**', {
cwd: destPackagePath
}).forEach(file => log.msg(LogType.COPY, file))
log.msg(LogType.COMPLETE, `組件 "${pkgName}" 創建完成`)
log.newline()
log.output(LogType.CREATE, `示例頁麵 "${pkgNameSuffix}"`, destPagePath)
// 輸入拷貝 或 新增 的日誌信息
glob.sync('**', {
cwd: destPagePath
}).forEach(file => log.msg(LogType.COPY, file))
log.msg(LogType.COMPLETE, `示例頁麵 "${pkgNameSuffix}" 創建完成`)
resolve()
})
})
}