zoukankan      html  css  js  c++  java
  • webpack打包时修改package.json的版本号,并输出相关版本

    可直接修改的方式

    {
      plugins: [
        function() {
          // 修改package.json中的版本号
          this.plugin('done', function() {
            const pkgPath = path.join(__dirname, '/../package.json');
            let pkg = fs.readFileSync(pkgPath);
            pkg = JSON.parse(pkg);
            pkg.version = '1.0.1';
            fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
          });
        },
    
        new webpack.DefinePlugin({
          'process.env.MY_VERSION': JSON.stringify(require('../package.json').version)
          // 项目中使用 process.env.MY_VERSION 输出
        })
      ];
    }
    

    chainWebpack方式

    import path from 'path';
    import fs from 'fs';
    import moment from 'moment';
    import { version } from '../src/defaultSettings';
    
    const CurrentVersion = `${version}.${moment().format("YYMMDD.HHmmss")}`;
    
    const setPackageJsonVersion = () =>{
      const pkgPath = path.join(__dirname, '/../package.json');
      let pkg = fs.readFileSync(pkgPath);
      pkg = JSON.parse(pkg);
      pkg.version = CurrentVersion;
      fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
    }
    
    export default config => {
      config.plugin('define').tap( args => {
        if(process.env.NODE_ENV !== 'development'){
          setPackageJsonVersion();
          args[0].VERSION = JSON.stringify(CurrentVersion);   // 方式1:直接访问VERSION
          args[0]['process.env.VERSION'] = JSON.stringify(CurrentVersion);    // 方式2:通过process.env.VERSION访问
        }else{
          args[0].VERSION = JSON.stringify(version);
          args[0]['process.env.VERSION'] = JSON.stringify(version);
        }
        return args;
      })
    }
    
  • 相关阅读:
    常用排序算法(七)归并排序
    常用排序算法(六)堆排序
    常用排序算法(五)选择排序
    常用排序算法(四)希尔排序
    常用排序算法(三)直接插入排序
    常用排序算法(二)快速排序
    常用排序算法(一)冒泡排序
    Linux内核中双向链表的经典实现
    回溯法
    迪杰斯特拉Dijkstra算法介绍
  • 原文地址:https://www.cnblogs.com/adoctors/p/11263547.html
Copyright © 2011-2022 走看看