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;
})
}
webpack打包时修改package.json的版本号,并输出相关版本的更多相关文章
- node --save可以省略掉手动修改package.json的步骤
当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name),然后连同版本号手动将他们添加到模块配置文件package.json中的依赖里 ...
- webpack打包时排除其中一个css、js文件,或单独打包一个css、js文件
在项目中经常会需要将一些接口的配合文件或者某些样式文件,分离出来单独打包,便于后期改动,这里我以css文件为例,介绍实现两种方法: 项目目录: 如上图所示,现在我需要将项目中的scBtn.css文件单 ...
- webpack项目怎样修改package项目名称
使用vue-cli+webpack创建的项目,修改文件名称或者更改文件的位置,运营时会报错,是因为npm项目,在安装依赖(node_nodules)时,会记录当前的文件路径,当修改之后就无法正常启动. ...
- 前端笔记(关于webpack打包时内存溢出问题的解决)
首先安装increase-memory-limit cnpm install -g increase-memory-limit 重启cmd,并在项目跟目录中运行一下 increase-memory-l ...
- vue项目webpack打包后修改配置文件
从webpack打包结构中我们知道,vue中有一个存放外部资源的文件夹static,它里面的文件是不会被打包编译的,所以我们就可以利用外部引入js的方式将我们的想要的数据在index.html中以js ...
- webpack 打包时到底如何组织js
问题一:引入前端库,方法也是不一样的 比如 lodash.js ,作为一个 chunk 用 html-webpack-plugin 打包到页面里,会生成一个全局变量 window._ ,在其它 js ...
- vue用webpack打包时引入es2015插件
1.安装依赖包 $ npm install --save-div babel-preset-es2015 ps:babel-loader.babel-core应该是默认装好的,如果没有安装,请重新安装 ...
- Webpack打包时警告 - Critical dependency: the request of a dependency is an expression
关于解决 [Webpack] Critical dependency: the request of a dependency is an expression ------------------- ...
- android studio 把 ionic 打包时修改应用名称、修改应用图标、修改启动画面,升级打包
在项目中resources中替换成自己的图标和启动画面即可 在config.xml 修改包名 打正式包和升级打包同原生的类似,在Androidmanifest.xml修改版本号和版本名
随机推荐
- thinkphp5.1生成缩略图很模糊
缩略图一定要从大分辨率往小生成 $image->thumb(400,400,\think\Image::THUMB_CENTER)->save(Env::get('root_path'). ...
- 《Metasploit魔鬼训练营》第一章实践作业
<Metasploit魔鬼训练营>第一章实践作业 1.搜集Samba服务usermap_script安全漏洞的相关信息,画出该安全漏洞的生命周期图,标注各个重要事件点的日期,并提供详细描述 ...
- python学习03字符串基本操作
'''字符串可以用单引号,双引号,三引号表示 '''#1.读取str1='I am a student!'#每一个字符对应一个下标,可以利用下标的方式来读取字符串对应的值——索引print(str1[ ...
- 虚拟化KVM之优化(三)
KVM的优化 1.1 cpu的优化 inter的cpu的运行级别,(Ring2和Ring1暂时没什么用)Ring3为用户态,Ring0为内核态 Ring3的用户态是没有权限管理硬件的,需要切换到内核态 ...
- fail-safe fail-fast知多少
目录 简介 Fail-fast Iterator Fail-fast 的原理 Fail-safe Iterator 总结 fail-safe fail-fast知多少 简介 我们在使用集合类的时候,通 ...
- 已有项目接入git远程仓库
1.项目根目录初始化git仓库 git init 2.将本地项目与远程仓库关联(首先得在远程创建一个代码仓库) git remote add origin 远程仓库地址 诺,仓库地址就是这个玩意 3. ...
- Node.js快速创建一个访问html文件的服务器
var http = require('http'), // 引入需要的模块 fs = require('fs'), //引入文件读取模块 cp = require('child_process'), ...
- Codeforces Round #587
题目链接:Round #587 题目答案:官方Editorial.My Solution A. Prefixes 题意:给一字符串,只含有'a'或'b',需要改变某些位置('a'变'b'或'b'变'a ...
- 字符串后面空字符的问题(char*与string的转换)
今天AC了不少题,困扰已久的Time limit error 也解决了,记住下次用STL容器的时候一定要清空容器. 其次是字符数组与字符串的浅谈. 字符数组是以'\0'结尾的,所以在字符数组赋值给字符 ...
- Codeforces Round #618 (Div. 2)-B. Assigning to Classes
Reminder: the median of the array [a1,a2,-,a2k+1] of odd number of elements is defined as follows: l ...