feature: npm命令可配置化。 (#322)
parent
5e6e7b288b
commit
face64bfd2
|
@ -6,6 +6,7 @@ module.exports = {
|
||||||
variables: true
|
variables: true
|
||||||
},
|
},
|
||||||
setting: {
|
setting: {
|
||||||
|
command: 'npm',
|
||||||
'strict-ssl': true,
|
'strict-ssl': true,
|
||||||
cafile: false,
|
cafile: false,
|
||||||
NODE_EXTRA_CA_CERTS: false,
|
NODE_EXTRA_CA_CERTS: false,
|
||||||
|
|
|
@ -29,7 +29,9 @@ const NodePlugin = function (context) {
|
||||||
nodeApi.setVariables()
|
nodeApi.setVariables()
|
||||||
},
|
},
|
||||||
async getNpmEnv () {
|
async getNpmEnv () {
|
||||||
const ret = await shell.exec(['npm config list --json'], { type: 'cmd' })
|
const command = config.get().plugin.node.setting.command || 'npm'
|
||||||
|
|
||||||
|
const ret = await shell.exec([`${command} config list --json`], { type: 'cmd' })
|
||||||
if (ret != null) {
|
if (ret != null) {
|
||||||
const json = ret.substring(ret.indexOf('{'))
|
const json = ret.substring(ret.indexOf('{'))
|
||||||
return jsonApi.parse(json)
|
return jsonApi.parse(json)
|
||||||
|
@ -38,25 +40,27 @@ const NodePlugin = function (context) {
|
||||||
},
|
},
|
||||||
|
|
||||||
async setNpmEnv (list) {
|
async setNpmEnv (list) {
|
||||||
|
const command = config.get().plugin.node.setting.command || 'npm'
|
||||||
|
|
||||||
const cmds = []
|
const cmds = []
|
||||||
for (const item of list) {
|
for (const item of list) {
|
||||||
if (item.value != null) {
|
if (item.value != null) {
|
||||||
cmds.push(`npm config set ${item.key} ${item.value}`)
|
cmds.push(`${command} config set ${item.key} ${item.value}`)
|
||||||
} else {
|
} else {
|
||||||
cmds.push(`npm config delete ${item.key}`)
|
cmds.push(`${command} config delete ${item.key}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const ret = await shell.exec(cmds, { type: 'cmd' })
|
return await shell.exec(cmds, { type: 'cmd' })
|
||||||
return ret
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async unsetNpmEnv (list) {
|
async unsetNpmEnv (list) {
|
||||||
|
const command = config.get().plugin.node.setting.command || 'npm'
|
||||||
|
|
||||||
const cmds = []
|
const cmds = []
|
||||||
for (const item of list) {
|
for (const item of list) {
|
||||||
cmds.push(`npm config delete ${item} `)
|
cmds.push(`${command} config delete ${item} `)
|
||||||
}
|
}
|
||||||
const ret = await shell.exec(cmds, { type: 'cmd' })
|
return await shell.exec(cmds, { type: 'cmd' })
|
||||||
return ret
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async setYarnEnv (list) {
|
async setYarnEnv (list) {
|
||||||
|
@ -69,8 +73,7 @@ const NodePlugin = function (context) {
|
||||||
cmds.push(`yarn config delete ${item.key}`)
|
cmds.push(`yarn config delete ${item.key}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const ret = await shell.exec(cmds, { type: 'cmd' })
|
return await shell.exec(cmds, { type: 'cmd' })
|
||||||
return ret
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async unsetYarnEnv (list) {
|
async unsetYarnEnv (list) {
|
||||||
|
@ -78,8 +81,7 @@ const NodePlugin = function (context) {
|
||||||
for (const item of list) {
|
for (const item of list) {
|
||||||
cmds.push(`yarn config delete ${item} `)
|
cmds.push(`yarn config delete ${item} `)
|
||||||
}
|
}
|
||||||
const ret = await shell.exec(cmds, { type: 'cmd' })
|
return await shell.exec(cmds, { type: 'cmd' })
|
||||||
return ret
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async getVariables () {
|
async getVariables () {
|
||||||
|
@ -119,9 +121,11 @@ const NodePlugin = function (context) {
|
||||||
},
|
},
|
||||||
|
|
||||||
async setProxy (ip, port) {
|
async setProxy (ip, port) {
|
||||||
|
const command = config.get().plugin.node.setting.command || 'npm'
|
||||||
|
|
||||||
const cmds = [
|
const cmds = [
|
||||||
`npm config set proxy=http://${ip}:${port}`,
|
`${command} config set proxy=http://${ip}:${port}`,
|
||||||
`npm config set https-proxy=http://${ip}:${port}`
|
`${command} config set https-proxy=http://${ip}:${port}`
|
||||||
]
|
]
|
||||||
|
|
||||||
const env = []
|
const env = []
|
||||||
|
@ -135,19 +139,19 @@ const NodePlugin = function (context) {
|
||||||
const nodeConfig = config.get().plugin.node
|
const nodeConfig = config.get().plugin.node
|
||||||
const rootCaCertFile = config.get().server.setting.rootCaFile.certPath
|
const rootCaCertFile = config.get().server.setting.rootCaFile.certPath
|
||||||
if (nodeConfig.setting['strict-ssl']) {
|
if (nodeConfig.setting['strict-ssl']) {
|
||||||
cmds.push('npm config set strict-ssl false')
|
cmds.push(`${command} config set strict-ssl false`)
|
||||||
}
|
}
|
||||||
if (nodeConfig.setting.cafile) {
|
if (nodeConfig.setting.cafile) {
|
||||||
cmds.push(`npm config set cafile "${rootCaCertFile}"`)
|
cmds.push(`${command} config set cafile "${rootCaCertFile}"`)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nodeConfig.setting.NODE_EXTRA_CA_CERTS) {
|
if (nodeConfig.setting.NODE_EXTRA_CA_CERTS) {
|
||||||
cmds.push(`npm config set NODE_EXTRA_CA_CERTS "${rootCaCertFile}"`)
|
cmds.push(`${command} config set NODE_EXTRA_CA_CERTS "${rootCaCertFile}"`)
|
||||||
env.push({ key: 'NODE_EXTRA_CA_CERTS', value: rootCaCertFile })
|
env.push({ key: 'NODE_EXTRA_CA_CERTS', value: rootCaCertFile })
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nodeConfig.setting.NODE_TLS_REJECT_UNAUTHORIZED) {
|
if (nodeConfig.setting.NODE_TLS_REJECT_UNAUTHORIZED) {
|
||||||
cmds.push('npm config set NODE_TLS_REJECT_UNAUTHORIZED 0')
|
cmds.push(`${command} config set NODE_TLS_REJECT_UNAUTHORIZED 0`)
|
||||||
env.push({ key: 'NODE_TLS_REJECT_UNAUTHORIZED', value: '0' })
|
env.push({ key: 'NODE_TLS_REJECT_UNAUTHORIZED', value: '0' })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,11 +166,13 @@ const NodePlugin = function (context) {
|
||||||
},
|
},
|
||||||
|
|
||||||
async unsetProxy () {
|
async unsetProxy () {
|
||||||
|
const command = config.get().plugin.node.setting.command || 'npm'
|
||||||
|
|
||||||
const cmds = [
|
const cmds = [
|
||||||
'npm config delete proxy',
|
`${command} config delete proxy`,
|
||||||
'npm config delete https-proxy',
|
`${command} config delete https-proxy`,
|
||||||
'npm config delete NODE_EXTRA_CA_CERTS',
|
`${command} config delete NODE_EXTRA_CA_CERTS`,
|
||||||
'npm config delete strict-ssl'
|
`${command} config delete strict-ssl`
|
||||||
]
|
]
|
||||||
const ret = await shell.exec(cmds, { type: 'cmd' })
|
const ret = await shell.exec(cmds, { type: 'cmd' })
|
||||||
event.fire('status', { key: 'plugin.node.enabled', value: false })
|
event.fire('status', { key: 'plugin.node.enabled', value: false })
|
||||||
|
|
|
@ -20,6 +20,10 @@
|
||||||
当前未启动
|
当前未启动
|
||||||
</a-tag>
|
</a-tag>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
<a-form-item label="npm命令名" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
|
<a-input v-model="config.plugin.node.setting.command"></a-input>
|
||||||
|
<div class="form-help">如果你的npm命令改成了其他名字,或者想设置绿色版npm程序路径,可在此处修改</div>
|
||||||
|
</a-form-item>
|
||||||
<a-form-item label="SSL校验" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form-item label="SSL校验" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-checkbox v-model="config.plugin.node.setting['strict-ssl']">
|
<a-checkbox v-model="config.plugin.node.setting['strict-ssl']">
|
||||||
关闭strict-ssl
|
关闭strict-ssl
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<!-- </a-form-item>-->
|
<!-- </a-form-item>-->
|
||||||
<a-form-item label="pip命令名" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form-item label="pip命令名" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-input v-model="config.plugin.pip.setting.command"></a-input>
|
<a-input v-model="config.plugin.pip.setting.command"></a-input>
|
||||||
<div class="form-help">如果你的pip命令改成了其他名字(如pip3),可以在此处修改</div>
|
<div class="form-help">如果你的pip命令改成了其他名字(如pip3),或者想设置绿色版pip程序路径,可在此处修改</div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="仓库镜像" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form-item label="仓库镜像" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-radio-group v-model="config.plugin.pip.setting.registry" @change="onSwitchRegistry"
|
<a-radio-group v-model="config.plugin.pip.setting.registry" @change="onSwitchRegistry"
|
||||||
|
|
Loading…
Reference in New Issue