自動化構建專案中的檔案操作

2021-09-14 02:34:46 字數 4058 閱讀 7914

讀寫檔案

fs; path
var fs = require('fs');

var path = require('path');

//__dirname:全域性變數,儲存的是檔案所在的檔案目錄

把乙個路徑或路徑片段的序列解析為乙個絕對路徑。

//讀檔案

var readfile = fs.readfilesync(path.resolve(__dirname, '../../src/test.js'), 'utf8');

var jsonobject=json.parse(readfile);

//寫檔案

fs.writefile(path.resolve(__dirname, '../../dist/dist.js'), json.stringify(jsonobject));

通過postcss解析檔案

postcss
var postcss = require('postcss');

var fs = require('fs');

var path = require('path');

var fontfile = fs.readfilesync(path.resolve(__dirname, '../../packages/theme-chalk/src/icon.scss'), 'utf8');

var nodes = postcss.parse(fontfile).nodes;

var classlist = ;

nodes.foreach((node) =>

});fs.writefile(path.resolve(__dirname, '../../examples/icon.json'), json.stringify(classlist));

使用json-templater和uppercamelcase做模板字元替換和駝峰規範

uppercamelcase使用例項
const uppercamelcase = require('uppercamelcase');

uppercamelcase('foo-bar');

//=> foobar

uppercamelcase('foo_bar');

//=> foobar

uppercamelcase('foo-bar');

//=> foobar

uppercamelcase('--foo.bar');

//=> foobar

uppercamelcase('__foo__bar__');

//=> foobar

uppercamelcase('foo bar');

//=> foobar

console.log(process.ar**[3]);

//=> --foo-bar

uppercamelcase(process.ar**[3]);

//=> foobar

uppercamelcase('foo', 'bar');

//=> 'foobar'

uppercamelcase('__foo__', '--bar');

//=> 'foobar'

json-templater和uppercamelcase組合使用例項
var components = require('../../components.json');

var fs = require('fs');

var render = require('json-templater/string');

var uppercamelcase = require('uppercamelcase');

var path = require('path');

/**乙個字串常量,定義作業系統相關的行末標誌:

\n 在 posix 系統上

\r\n 在 windows系統上

**/var endofline = require('os').eol;

var output_path = path.join(__dirname, '../../src/index.js');

var import_template = 'import } from \'../packages/}/index.js\';';

var install_component_template = ' }';

var main_template = `/* automatically generated by './build/bin/build-entry.js' */

}import locale from 'element-ui/src/locale';

import collapsetransition from 'element-ui/src/transitions/collapse-transition';

const components = [

}, collapsetransition

];const install = function(vue, opts = {}) );

vue.use(loading.directive);

const element = {};

element.size = opts.size || '';

vue.prototype.$loading = loading.service;

vue.prototype.$msgbox = messagebox;

vue.prototype.$alert = messagebox.alert;

vue.prototype.$confirm = messagebox.confirm;

vue.prototype.$prompt = messagebox.prompt;

vue.prototype.$notify = notification;

vue.prototype.$message = message;

vue.prototype.$element = element;

};/* istanbul ignore if */

if (typeof window !== 'undefined' && window.vue) ;

module.exports = }',

locale: locale.use,

i18n: locale.i18n,

install,

collapsetransition,

loading,}};

module.exports.default = module.exports;

`;delete components.font;

var componentnames = object.keys(components);

var includecomponenttemplate = ;

var installtemplate = ;

var listtemplate = ;

componentnames.foreach(name => ));

if (['loading', 'messagebox', 'notification', 'message'].indexof(componentname) === -1) ));

} if (componentname !== 'loading') listtemplate.push(` $`);

});var template = render(main_template, );

fs.writefilesync(output_path, template);

console.log('[build entry] done:', output_path);

Gulp 自動化構建

use gulp 官網 編譯 sass 合併優化壓縮 css 校驗壓縮 js 優化新增檔案指紋 md5 元件化頭部底部 include html 實時自動重新整理 gulp是前端開發過程中對 進行自動化構建的利器。它不僅能對資源進行優化,而且在開發過程中能夠通過配置自動完成很多重複的任務,讓我們可以...

自動化構建Jenkins fastlane

參考 自動化查詢描述檔案 安裝之前 對應的uuid 參考鏈結 檢視簽名檔案,teamid 描述檔案路徑 相互關係 命令列提示沒有登入 jenkins的工作區目錄 jenkins環境配置 同道中人 shell 報錯倉庫位址 配的那個token不是用來登入git倉庫的原始碼管理的憑據和 api的憑據不是...

jenkins自動化構建搭建

使用jenkins搭建自動化部署方案,可以省去不斷的去部署工程工程的麻煩,也有利於管理稍大團隊的開發。主要步驟有 以j a為主 1.在伺服器中搭建搭建開發環境j a的jdk和m en。3.採用命令列 j a jar jenkins.war啟動jenkins,訪問 http localhost 808...