123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- const fs = require("fs");
- const Path = require("path");
- const exec = require("child_process").exec;
- function changeName(needChangeFiles, callback) {
- needChangeFiles.map(fileName => {
- fileName = Path.resolve(fileName);
- let tmpFileName = `${fileName}-tmp`;
- let deployFileName = `${fileName}-deploy`;
- fs.rename(fileName, tmpFileName, function() {
- fs.rename(deployFileName, fileName, function() {
- fs.rename(tmpFileName, deployFileName, function() {});
- });
- });
- });
- callback && callback(needChangeFiles);
- }
- function upProjectVersion(fileName, callback) {
- let result;
- let data = fs.readFileSync(fileName, "utf-8");
- let jsonObj = JSON.parse(data);
- let nums = jsonObj.version.split(".");
- nums[nums.length - 1] = parseInt(nums[nums.length - 1]) + 1;
- jsonObj.version = nums.join(".");
- result = JSON.stringify(jsonObj, null, 3);
- fs.writeFile(fileName, result, function(err) {
- if (err) {
- console.log(err);
- } else {
- callback && callback();
- }
- });
- }
- function deployProject(callback) {
- exec("npm publish", function(err, stdout, stderr) {
- console.log(stdout);
- console.log("stderr:" + stderr);
- callback && callback();
- });
- }
- const deployType = process.argv[2];
- if ("base" === deployType) {
- console.log("发布项目基础包");
- let needChangeFiles = [
- "config/dev.env.js",
- "config/prod.env.js",
- "src/router/index.js",
- "mock/serverApi.json",
- ".npmignore",
- "package.json"
- ];
- upProjectVersion("./package.json-deploy", function() {
- changeName(needChangeFiles, function() {
- deployProject(function() {
- changeName(needChangeFiles);
- });
- });
- });
- } else if ("common" === deployType) {
- upProjectVersion("./package.json", function() {
- deployProject(function() {
- console.log("发布成功");
- });
- });
- } else {
- console.error("发布类型错误");
- }
|