jenkins vue 打包特别慢_Vue + Jenkins 打包部署笔记

代码参数读取配置

使用webpack.DefinePlugin可以实现全局变量定义

//读取npm/yarn 参数

let argv = [...process.argv].slice(2)

const myEnv = {}

for (const arg of argv) {

let index = arg.indexOf('=')

console.log(arg)

if (index >= 0 && arg.startsWith('--')) {

myEnv[arg.substring(2, index)] = arg.substring(index + 1)

}

}

....

// 使用插件 这里定义了一个全局变量ENV

configureWebpack: {

plugins: [

new webpack.DefinePlugin({

'ENV': myEnv

}),

.....

},

在代码中可以直接使用ENV获取到相应内容

Jenkins 打包

直接执行shell实现

如果使用npm 需要多加一个 --,yarn 可以不需要

npm install &&

npm run build -- --title='test' --home='main'

发布到远程机器

直接使用Publish Over SSH插件实现

需要做的配置

在 系统管理 -> 系统设置 中设置远程ssh机器信息

在这里插入图片描述- 这下面找到Publish Over SSH进行设置全局配置

在这里插入图片描述 Passphrase 意义为远程机器密码,图简单可以直接设置这个

Remote Directory 表示远程上传的文件的目标文件夹,必须设置且登录用户必须有写入权限

设置项目中的 Publish Over SSH 配置信息

在构建一栏选择 Send files or execute commands over SSH

上面的Name 选择刚才配置的

设置上传文件配置

上传的目录相对路径为之前设置的的全局(Remote Directory)目录下

Source files 表示要上传的文件,可以直接输入文件的相对路径,获取*/.zip这样的表达式

Remove prefix 移除的目录前缀,下图的意思为移除dist前缀,不然目标机器的路径会多dist一级

Remote Directory 表示目标路径,在之前的全局路径之下

Exec command 上传完毕之后想要执行的命令,使用的shell定义日期变量来选中目标文件

在这里插入图片描述### 遇到的问题

centos 上执行npm输入参数是,如果参数中存在特殊字符会导致打包失败,解决方案暂时未知临时替换成系统yarn来执行

出现的问题如下:

# 当出现链接是会打包会报错

npm run build -- --home='http://baidu.com'

// 这是对应的错误信息

{ SyntaxError: Identifier directly after number (1:2)

at Parser.pp$4.raise (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:2757:13)

at Parser.pp$8.readNumber (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:5005:59)

at Parser.pp$8.getTokenFromCode (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:4870:17)

at Parser.pp$8.readToken (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:4628:15)

at Parser.pp$8.nextToken (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:4619:15)

at Parser.pp$8.next (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:4576:8)

at Parser.pp$3.parseParenAndDistinguishExpression (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:2220:10)

at Parser.pp$3.parseExprAtom (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:2163:41)

at Parser.parseExprAtom (/var/lib/jenkins/workspace/test/node_modules/acorn-dynamic-import/lib/inject.js:60:31)

at Parser.pp$3.parseExprSubscripts (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:2047:19)

at Parser.pp$3.parseMaybeUnary (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:2024:17)

at Parser.pp$3.parseExprOps (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:1966:19)

at Parser.pp$3.parseMaybeConditional (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:1949:19)

at Parser.pp$3.parseMaybeAssign (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:1925:19)

at Parser.pp$3.parseExpression (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:1896:19)

at Parser.pp$1.parseStatement (/var/lib/jenkins/workspace/test/node_modules/acorn/dist/acorn.js:815:45) pos: 2, loc: Position { line: 1, column: 2 }, raisedAt: 2 }

你可能感兴趣的:(jenkins,vue,打包特别慢)