@huxy/pack

@huxy/pack 是一个项目构建工具,集成了 esbuild、eslint、stylelint、jest、commitlint、husky、standard-version、postcss、prettier,提供开发环境、构建打包、本地启动服务、环境配置、代理配置等功能。使用简单方便,功能齐全,配置灵活,可自己添加需要的功能插件。
运行时会自动生成插件配置文件,如 babel.config.js 文件等,可自行修改覆盖。
生成项目配置文件 .huxy/app.configs.js ,用户自行配置即可。
app.configs
用户环境配置:
const app = {
PORT: 8080,
PROD_PORT: 8081,
PUBLIC_DIR: 'public',
BUILD_DIR: 'build',
DEV_ROOT_DIR: '/',
projectName: 'XX平台',
envConfigs: {
name: '项目名',
_id: '其它属性',
},
};
const webpack = {
dev: {
},
prod: {
},
};
const nodeServer = (config, app) => {
app.get('/local/test', (req, res, next) => {
console.log(req);
});
};
export default {
app,
webpack,
nodeServer,
};
export default {
app,
webpack: (rootPath, appPath) => ({
resolve: {
alias: {
'@huxy': `${rootPath}/playground/huxy`,
},
},
prod: {
copy: [
{
from: `${appPath}/public/robots.txt`,
to: `${appPath}/build/robots.txt`,
},
],
buildConfigs: {
target: 'es2018',
minify: true,
},
},
}),
};
- copy:构建完成拷贝文件或文件夹。
- buildConfigs:打包资源配置,见 esbuild 配置项。
webpack 配置项可以是一个配置对象,也可以是一个带有 rootDir 和 appPath 的回调函数。当要使用到路径时,请使用回调函数来获取根目录路径和 app 路径。
运行命令
"start": "pack start",
"build": "pack run build",
"analyze": "pack run analyze",
"server": "pack run server",
"test": "pack run test",
其它 npm 命令:
"eslint": "pack eslint 'app/**/*.{js,jsx}'", // 或直接使用 eslint
"eslint-common": "eslint 'common/**/*.{js,jsx}'",
"stylelint": "stylelint 'app/**/*.{css,less}'",
"lint-fix": "eslint --fix 'app/**/*.{js,jsx}' && stylelint --fix 'app/**/*.{css,less}'",
"prettier": "prettier 'app/**/*' --write --ignore-unknown",
"release": "standard-version"
使用
新建一个项目,创建 public 和 app 目录。
- public:静态资源目录,存放
index.html 和 favicon 等。可使用 app.configs 里面的 PUBLIC_DIR 来配置路径,默认 public 放在 app 目录里面。
- app:存放项目代码文件,也是入口文件夹。可自己命名,如
src,在配置文件里配置 entry: 'src' 即可。
安装 @huxy/pack
npm i -D @huxy/pack
然后在 package.json 里面创建上面运行命令里的 scripts ,就可运行了。
版本 0.6+ 使用了 esmodule,只需在 package.json 里面设置 "type": "module" 即可。
v2.0.0 使用了 huxy-server 服务,也可自行使用 huxy-server 来创建服务,详情请查看 huxy-server 。