vue-cli3.0脚⼿架配置及扩展(六):npmrunrve和
npmrunbuild拦截修改
修改⽂件为:path node_modules/@vue/cli-rvice/bin/vue-cli-rvice.js,该⽂件的修改基于vue-cli的版本为3.0.0-rc.2版本,这是node_modules内部⽂件,所以在升级vue-cli3.0时会被覆盖掉,所以建议存档,并且修改package.json中的本地开发依赖配置对象devDependencies,修改以‘@vue/’开头的依赖包为固定版本,即去除^和~
本⽂件主要对npm run rve 和 npm run build 命令进⾏拦截,获得我们⾃定义的命令参数后,再对命令进⾏还原。⽂档请求了AppConf类,请⾃⾏修改路径。
代码如下:
#!/usr/bin/env node
/**
* @fileOverview vue脚⼿架命令服务⼊⼝
* @modifyBy Franks.T.D
* @modifyDate 2018/06/16
* @modifyOverview 增加命令包装:rve时⽀持模块启动;build时必须指定⼀个存在的应⽤名
* @path node_modules/@vue/cli-rvice/bin/vue-cli-rvice.js
*/弩炮
const mver = require('mver')
const { error } = require('@vue/cli-shared-utils')
const requiredVersion = require('../package.json').de
if (!mver.satisfies(process.version, requiredVersion)) {
error(
`You are using Node ${process.version}, but vue-cli-rvice ` +
`requires Node ${requiredVersion}.\nPlea upgrade your Node version.`
)
春节的词语
}
const [Service, AppConf] = [
require('../lib/Service'),
require('../../../../src/asts/js/libs/apps_config_class')
]
let rawArgv = process.argv.slice(2)
如何说话const [appconf, newArgv] = [
new AppConf(),
process.argv.slice(3)
]
if (rawArgv[0] === 'rve' && rawArgv.length !== 1 && !dulesExist(newArgv)) {
console.log('ERR! 存在错误模块名参数,可启动模块:', ...dules)
眉毛淡的女人旺夫return fal
} el if (rawArgv[0] === 'build' && (rawArgv.length === 1 || newArgv.length > 1 || !appconf.appsExist(newArgv))) {
梦里花歌词
console.log('ERR! 缺少应⽤名参数或存在错误应⽤名参数,可构建应⽤:', ...appconf.apps)
return fal
} el {
rawArgv = rawArgv.filter(key => !newArgv.includes(key))
}
const rvice = new v.VUE_CLI_CONTEXT || process.cwd())
const args = require('minimist')(rawArgv)
const command = args._[0]
rvice.run(command, args, rawArgv).catch(err => {
error(err)
})
npm run rve 命令在修改后⽀持在后⾯加⼊模块名,即单独启动单个模块,模块为config.app.js中CONTEXT_DIRECTORY中所有被数组包含的模块名,模块名可不指定或指定多个,但指定后⼀定要全正确,否则会报⾃定义错误,命令使⽤如下:
npm run rve mod1 // 启动mod1模块
纯度渐变npm run rve mod1 mod2 // 启动mod1模块和mod2模块,多个模块可以⾪属于不同应⽤
npm run rve // 启动本⼯程下所有模块
npm run build 命令在修改后必须指定应⽤名,只⽀持单个应⽤名参数,应⽤名为config.app.js中APP_
NAME中所配置,命令使⽤如下:look的短语
npm run build www // 启动www应⽤,假设为前台
npm run build memberCenter // 启动memberCenter应⽤,假设为会员中⼼团员日记
npm run build www memberCenter // ERR! 缺少应⽤名参数或存在错误应⽤名参数 ......
npm run build // ERR! 缺少应⽤名参数或存在错误应⽤名参数 ......
本⽂件执⾏时获取到rve或者build携带参数后,实际上是对命令进⾏了包装,因为本⽂件为bash输⼊命令后第⼀个进⼊的执⾏⽂档,此处可对⽤户的错误命令进⾏及时终⽌并进⾏使⽤引导
参考阅读《》《》