代码拉取完成,页面将自动刷新
该项目提供了工程化的一站式解决方案,让你不用再为繁琐的webpack配置而头疼。
该项目分为三个部分:
* run- 开头的部分为命令行工具,一般可以 npm install -g 安装
* rewired- 开头的部分为rewired,用来配置或者修饰特定功能的webpack
* scripts- 开头的是工具部分,用来提供一些工具函数
由我们的包内提供一个默认的,基础的webpack配置。
然后提供一个可以在外部修改和定制的接口,来满足不同的功能需求。
对于针对某一特定功能的修改和定制,大部分情况下这些修改是可以复用的,我们把它抽象成一个rewired,一个项目通过多个rewired的叠加,最终可以满足任何场景的配置需求
由包内提供项目的开发服务启动,build,test等命令支持,将webpack,webpack-dev等包封装到内部,这样可以让用于构建的一系列包依赖管理在内部,可以统一升级,避免污染业务项目的package.json依赖目录
//最简单的rewired @ifchange-engr/rewired-test
module.exports=(config,env)=>{
if(env==='production'){
//仅生产环境需要执行的部分
}
if(env==='development'){
//仅开发环境需要执行的部分
}
//共同需要执行的部分
return config
};
//使用
config=require('@ifchange-engr/rewired-test')(config,env);
//需要参数的rewired @ifchange-engr/rewired-test2
module.exports=(options)=>{
return (config,env)=>{
if(env==='production'){
//仅生产环境需要执行的部分
}
if(env==='development'){
//仅开发环境需要执行的部分
}
//共同需要执行的部分
return config
}
};
//使用
config=require('@ifchange-engr/rewired-test2')(options)(config,env);
//需要参数但是可以设置默认参数的rewired @ifchange-engr/rewired-test3
const createRewired=(options={/*默认参数*/})=>{
return (config,env)=>{
if(env==='production'){
//仅生产环境需要执行的部分
}
if(env==='development'){
//仅开发环境需要执行的部分
}
//共同需要执行的部分
return config
}
};
const rewired=createRewired();
rewired.withOptions=createRewired;
module.exports=rewired;
//使用
//默认参数
config=require('@ifchange-engr/rewired-test3')(config,env);
//自定义参数
config=require('@ifchange-engr/rewired-test3').withOptions(options)(config,env);
在业务项目中,通过在根目录的config-overrides.js文件去配置rewired。config-overrides.js本身可以看作是一个无参数的rewired
run-create包提供了脚手架功能,可以通过一个模版来初始化一个项目
该包默认提供两种默认模版,simple为最简单的项目,with egg为一个带有egg node端的项目
你也可以添加一个自定义模版,你需要首先将自定义模版发布到你npm源上,然后添加进脚手架
run-create包提供了预制件功能,可以将业务中,可复用的部分抽象成预制件。
一个预制件可以通过run-create应用到当前项目中,可以支持一定的模版编译,可以自动安装依赖。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。