package.json相关html
echo $LOGNAME
输出环境变量 用$- 'test': '' //测试服务
- 'start': '' //启动服务
- 'build': '' //编译
- 'docs': '' //文档的生成
- 'server:start': 'cross-env NODE_ENV=development supervisor ./app.js' 启动服务
- 'server:dev': 'cross-env NODE_ENV=development gulp' //开发的后端 编译后端
- 'server:prod': 'cross-env NODE_ENV=production gulp' //后端上线的js
- 'server:hint': 'cross-env NODE_ENV=hint gulp' //对js脚本进行校验
- 'client:dev': webpack--mode development //开发的前端
- 'client:prod': webpack--mode production //前端的上线
复制代码
检查80端口是否冲突前端
base_port="80"
check_port= `lsof -i:${base_port} | awk '{print $2}'`
while ["$check_port" != ""]
do
let base_port=base_port+1
check_port= `lsof -i:${base_port}`
done
echo ${base_port}
复制代码
shelljs包 用js 去书写shell 开头标注 #!/usr/bin/env nodenode
gulp相关 编译serverwebpack
目标web
实现的相关包以及坑shell
参考npm
const gulp = require("gulp");
const gulp = require("gulp-babel");
const watch = require("gulp-watch");
const rollup = require("gulp-rollup");
const replace = require("rollup-plugin-replace");
const eslint = require("gulp-eslint");
const entry = "./src/server/**/*.js";
//须要清洗的代码
const cleanEntry = "./src/server/config/index.js";
//开发环境
function builddev() {
return watch(entry, {
ignoreInitial: false
}, function() {
gulp.src(entry)
.pipe(babel({
//关闭外部的babelrc
babelrc: false,
"plugins": ["@babel/plugin-transform-modules-commonjs"]
}))
.pipe(gulp.dest('dist'))
})
}
//上线环境
function buildprod() {
return gulp.src(entry)
.pipe(babel({
//关闭外部的babelrc
babelrc: false,
ignore: ["./src/server/config/*.js"],
"plugins": ["@babel/plugin-transform-modules-commonjs"]
}))
.pipe(gulp.dest('dist'))
}
//清洗流
function buildconfig() {
return gulp.src(entry)
// transform the files here.
.pipe(rollup({
plugins: [
replace({
'process.env.NODE_ENV': JSON.stringify('production')
})
],
output: {
format: 'cjs'
}
input: cleanEntry
}))
.pipe(gulp.dest('./dist'))
}
//代码校验
function buildhint() {
return gulp.src(entry)
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError());
}
let build = gulp.series(builddev)
if (process.env.NODE_ENV == "production") {
build = gulp.series(buildhint, buildprod, buildconfig)
}
if (process.env.NODE_ENV == "hint") {
build = gulp.series(buildhint)
}
gulp.task("default", build);
复制代码
npm install webpack webpack-cli -g --save-devjson
配置webpack.config.jsgulp
const argv = require("yargs-parser")(process.env.slice(2));
const _mode = argv.mode || "development";
const _mergeConfig = require( `./config/webpack.${_mode}.js` );
const merge = require("webpack-merge");
const glob = require("glob");
const files = glob.sync("./src/web/views/**/*.entry.js");
for (let item of files) {
if (/.+\/([a-zA-Z]+-[a-zA-Z]+)(\.entry\.js$)/g.test(item) == true) {
const entryKey = RegExp.$1;
//html-plugin
//注册插件 html-plugin 送到dist以前拦截 插入静态资源
}
}
let _entry = {};
let webpackConfig = {
entry: _entry
};
module.exports = mrege(webpackConfig, _mergeConfig);
复制代码
未完待续....后端