快速搭建webpack项目模板
可基于此模板搭建一个自己的脚手架工具
git clone https://github.com/pashangshangpo/k-template.git
cd k-template
[yarn|npm] run new 项目名
cd ../项目名
[yarn|npm] start
git clone https://github.com/pashangshangpo/k-template.git
cd k-template
[yarn|npm] run new 项目名
cd ../项目名
例子
cd k-template
yarn run new react-demo
cd ../react-demo
[yarn|npm] start
默认会启动一个8087端口的服务,并且自动打开浏览器
[yarn|npm] build
默认会编译到dist/dest目录下
[yarn|npm] start options
options:
-e: [dev|qa|dest|...] 环境,默认dev
-p: [port] 端口,默认8087
[yarn|npm] build options
options:
-e: [dev|qa|dest|...] 环境,默认dest
-s: 编译完成后,开启一个服务,方便看编译后的效果
-d: debug,会生成eval-source-map,方便调试,建议只在调试bug的时候开启
-p: [port] 端口,默认8087, 开启-s有效
[yarn|npm] server options
options:
-e: [dev|qa|dest|...] 环境,默认dest
-p: [port] 端口,默认8087, 开启-s有效
[yarn|npm] lint
module.exports = {
config: {
open: true, // 是否拦截请求,如果开启则先尝试走本地,如果本地获取不到数据则走服务器
delay: 0, // 延时返回
cookie: '', // cookie
server: 'http://www.xx.com' // 要转发到的服务器地址
},
request: {
// 拦截/api/get的get请求
'get /api/get': ctx => {
return {
status: 'ok',
data: 'get'
};
},
// 拦截/api/all的post请求
'post /api/post': ctx => {
return {
status: 'ok',
data: 'post',
url: ctx.url
};
},
// 拦截/api/json的所有类型请求
'/api/json': {
json: 1121
},
'/api/user/:id': cxt => {
return {
status: 'ok',
user: cxt.params.id,
query: cxt.query
};
},
// 转发请求到http://www.baidu.com
'/baidu': 'http://www.baidu.com'
}
};
ctx: koa-router返回的请求对象
koa-router: https://github.com/alexmingoia/koa-router
另外还提供了几个常用工具
cxt.query = query解析后的对象
cxt.Mock = Mock;
cxt.mock = Mock.mock;
cxt.Random = Mock.Random;
Mock使用的是Mockjs: https://github.com/nuysoft/Mock/wiki/Getting-Started
module.exports = {
// 入口
entry: {
index: [
'./src/index.js'
]
},
// 需要平移的静态文件目录 在此配置的不区分环境
move: ['src/font'],
// 是否自动打开浏览器
autoOpenBrowser: true,
// 需要嵌入的脚本和样式, js支持src,function两种方式, css仅支持href 在此配置的不区分环境
inject: {
css: ['http://www.jquery.com/jquery.min.css'],
js: ['http://www.jquery.com/jquery.min.js', function() {}]
},
// 根据环境来配置 注意开发环境不会走outputPath的配置,始终输出到`dev/环境`目录下, outputPath配置的是编译环境输出路径
env: {
dest: {
publicPath: '/',
outputPath: 'dist/dest'
},
dev: {
publicPath: '/',
outputPath: 'dist/dev',
move: ['src/xxx'],
inject: {
js: [
function () {
window.CONTEXT = 'dev';
}
]
}
},
qa: {
publicPath: '/',
outputPath: 'dist/qa',
inject: {
js: [
function () {
window.CONTEXT = 'qa';
}
]
}
}
... 可自行添加更多环境
}
};
[yarn|npm] start -e [dev|dest|qa|...]
例子
yarn start -e dev
执行以上命令会将dev的配置用做开发环境,如果没有加-e默认也是dev环境
[yarn|npm] build -e [dev|dest|qa...]
例子
yarn build -e dest
执行以上命令会将dest用做编译配置
可自行修改
可自行修改
可自行修改
可自行修改
可自行修改
此项目只是作为一个模板来使用, 并不对webpack配置进行封装或限制, 因此当默认配置不足以满足你的需求时,可自行修改相关配置