0%

H5可以跳转任意微信小程序,不过wx.config的appid必须为服务号的appid,并且要有企业认证。

设置代理

1
2
yarn config set proxy http://127.0.0.1:1087
yarn config set https-proxy http://127.0.0.1:1087

获取当前设置的代理地址

1
2
yarn config get proxy
yarn config get https-proxy

删除当前设置的代理

1
2
yarn config delete proxy
yarn config delete https-proxy

在生产环境中,许多依赖的版本是不会改变的,比如vue、vuex这些,所以可以将这些依赖在编译过程中替换为cdn形式,这样每次版本更新的时候就可以不用重新下载这些js了。

具体代码如下:

vue.config.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const isProd = process.env.NODE_ENV === 'production'

const assetsCDN = {
// webpack build externals
externals: {
vue: 'Vue',
'vue-router': 'VueRouter',
vuex: 'Vuex',
axios: 'axios',
echarts: 'echarts',
lrz: 'lrz',
xlsx: 'XLSX'
},
css: [],
// https://unpkg.com/browse/vue@2.6.10/
js: [
'//cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.min.js',
'//cdn.jsdelivr.net/npm/vue-router@3.1.3/dist/vue-router.min.js',
'//cdn.jsdelivr.net/npm/vuex@3.1.1/dist/vuex.min.js',
'//cdn.jsdelivr.net/npm/axios@0.21.0/dist/axios.min.js',
'//cdn.jsdelivr.net/npm/echarts@4.9.0/dist/echarts.min.js',
'//cdn.jsdelivr.net/npm/lrz@4.9.41/dist/lrz.all.bundle.min.js',
'//cdn.jsdelivr.net/npm/xlsx@0.16.9/dist/xlsx.min.js'
]
}
vueConfig = {
configureWebpack: {
externals: isProd ? assetsCDN.externals : {}
},
chainWebpack: config => {
if (isProd) {
config.plugin('html').tap(args => {
args[0].cdn = assetsCDN
return args
})
}
}
}

index.html

1
2
3
4
5
6
7
8
9
10
11
<html>
...
<body>
...
<!-- require cdn assets js -->
<% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %>
<script type="text/javascript" src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
<% } %>
<!-- built files will be auto injected -->
</body>
</html>

在这个过程中,遇到一个坑,就是开发过程中的功能都是没问题的,但是一打包发布就会出现问题,主要是cdn和package.json中的依赖版本不一致导致的。

分为两种证书签名方式

  • PFX软证书
  • Ukey证书

PFX比较简单,我使用的是electron-builder打包,在electron-builder.json文件中写入配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"win": {
"icon": "resources/favicon.ico",
"target": [{ "target": "nsis", "arch": ["ia32"] }],
"artifactName": "xxx.${ext}",
"verifyUpdateCodeSignature": false,
"signingHashAlgorithms": [
"sha256",
"sha1"
],
"signDlls": true,
"rfc3161TimeStampServer": "http://timestamp.digicert.com",
"certificateFile": "xxx.pfx",
"certificatePassword": "xxx"
}

其中rfc3161TimeStampServer是时间戳服务器Url,certificateFile是使用makecert制作的证书导出后的文件,具体操作如下:

  • 需要在Windows环境下安装Visual Studio,去官方网站上下载个community版本的就好了
  • 安装完成后在开始菜单中找到VS目录,打开里面的cmd,就可以使用makecert命令了,输入makecert -r -pe -n "cn=MyCA" -$ commercial -a sha1 -cy authority -ss my,设置密码
  • 在MMC的证书管理中导出pfx,Win + R打开运行,输入MMC打开证书管理单元
    • 开始→运行→MMC,打开一个空的MMC控制台。
    • 在控制台菜单,文件→添加/删除管理单元→添加按钮→选”证书”→添加→选”我的用户账户”→关闭→确定
    • 在控制台菜单,文件→添加/删除管理单元→添加按钮→选”证书”→添加→选”计算机账户”→关闭→确定
    • 然后导出为PFX格式的证书,PKCS#12规范的证书,包含了公钥和私钥,导出时需要提供一个私钥的保护密码,在导出时设置即可

      制作步骤转至https://blog.csdn.net/popozhu/article/details/5793923

Windows代码签名分为EV签名方式和标准签名方式,下面介绍下沃通的套餐区别。
有四种套餐,EV签名、EV签名Pro、标准签名、标准签名Pro

EV签名和EV签名Pro

  • 可以直接让程序的信任值达到最高,不会再弹出Smartscreen验证
  • 使用Ukey签名,而不是软证书形式,提高了签名的复杂度
  • 套餐价格较贵(4000-5000)
  • 仅Pro)在有效期内可任意重新颁发证书,但是Ukey要额外付费,100元1个,主要是证书都在Ukey内,Ukey容易丢失,所以需要重新颁发证书
  • 仅Pro)支持 Windows内核代码 .sys, .cat等文件数字签名
  • 仅Pro)支持签名 UEFI, kernel-mode 驱动和 LSA 认证 请购买EV 代码签名证书

标准签名和标准签名Pro

  • 虽然增加了程序的信任值,但Windows还是会弹出Smartscreen验证,不过会显示签名证书的公司名和仍运行按钮,据说在下载量达到3000次后,就会隐藏Smartscreen弹窗验证,官方未说明
  • 套餐费用较低(2000-3000)
  • 购买后30天内支持一次重新颁发证书
  • 仅Pro)支持 Windows内核代码 .sys, .cat等文件数字签名