GitBucket
4.6.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull Requests
Labels
Milestones
Wiki
08335
/
hivui-platform-template
hivui平台项目模板
Browse code
用,glob 库代替 查找文件
master
1 parent
6e85914
commit
b3390317c5368849d988fc97713e3385cd5b5ffe
caibinghong
authored
on 15 Nov 2021
Showing
2 changed files
build/module-conf.js
doc.txt
Ignore Space
Show notes
View
build/module-conf.js
const fs = require("fs"); var chalk = require('chalk') var glob = require('glob') const packageConfig = require('../package.json') const projectName = packageConfig.name == 'hi-vui-template' ? 'project' : packageConfig.name; // 获取所有的moduleList var moduleList = [] // console.time() moduleList = glob.sync(`./${projectName}/!(dist|node_modules|build)/**/package.json`);// 这个执行比较快 114.811ms for(let i=moduleList.length-1;i>=0;i--){ moduleList[i]= moduleList[i].replace(/\/package\.json/gi,'') } // console.timeEnd() // console.log(moduleList); /* // 需要忽略的文件夹 const ignores = 'dist,node_modules,build'.split(',') function getAllModule(dir) { var files = fs.readdirSync(dir), isFind = false; //判断是否有模块存在 for (var i = 0; i < files.length; i++) { if (ignores.includes(files[i])) continue; if (files[i] == "package.json") { moduleList.push(dir); isFind = true; break; } } if (isFind == false) { for (var i = 0; i < files.length; i++) { if (ignores.includes(files[i])) continue var file = dir + '/' + files[i] var stat = fs.statSync(file) if (stat.isDirectory() == true) { getAllModule(file); } } } } // console.time() // console.log('指定目录:',projectName) getAllModule('./'+projectName);//指定目录 开始搜索模块 这个执行比较慢 1.829ms // console.timeEnd() */ // 检测是否在输入的参数是否在允许的list中 var checkModule = function (module) { var module = module || process.env.MODULE_ENV; // 检查moduleList是否有重复 var hash = {} var repeatList = [] for (var l = 0; l < moduleList.length; l++) { if (hash[moduleList[l]]) { repeatList.push(moduleList[l]) } hash[moduleList[l]] = true } if (repeatList.length > 0) { console.log(chalk.red('moduleList 有重复:')) console.log(chalk.red(repeatList.toString())) return false } let result = true let illegalParam = '' for (let moduleToBuild of module.split(',')) { if (moduleList.indexOf(moduleToBuild) === -1) { result = false illegalParam = moduleToBuild break } } if (result === false) { console.log(chalk.red('参数错误,允许的参数为:')) console.log(chalk.green(moduleList.toString())) console.log(chalk.yellow(`非法参数:${illegalParam}`)) } return result } // 获取当前要打包的模块列表 function getModuleToBuild() { let moduleToBuild = [] if (process.env.NODE_ENV === 'production') { /* 部署态,构建要打包的模块列表,如果指定了要打包的模块,那么按照指定的模块配置入口 * 这里有个特性,即使参数未传,那么获取到的undefined也是字符串类型的,不是undefined类型 * */ if (process.env.MODULE_ENV !== 'undefined') { moduleToBuild = process.env.MODULE_ENV.split(',') } else { // 如果未指定要打包的模块,那么打包所有模块 moduleToBuild = moduleList } } else { // 开发态,获取所有的模块列表 moduleToBuild = moduleList } return moduleToBuild } exports.moduleList = moduleList exports.checkModule = checkModule exports.getModuleToBuild = getModuleToBuild
const fs = require("fs"); var chalk = require('chalk') var glob = require('glob') const packageConfig = require('../package.json') const projectName = packageConfig.name == 'hi-vui-template' ? 'project' : packageConfig.name; // 获取所有的moduleList var moduleList = [] // 需要忽略的文件夹 const ignores = 'dist,node_modules,build'.split(',') function getAllModule(dir) { var files = fs.readdirSync(dir), isFind = false; //判断是否有模块存在 for (var i = 0; i < files.length; i++) { if (ignores.includes(files[i])) continue; if (files[i] == "package.json") { moduleList.push(dir); isFind = true; break; } } if (isFind == false) { for (var i = 0; i < files.length; i++) { if (ignores.includes(files[i])) continue var file = dir + '/' + files[i] var stat = fs.statSync(file) if (stat.isDirectory() == true) { getAllModule(file); } } } } // console.log('指定目录:',projectName) getAllModule('./'+projectName);//指定目录 开始搜索模块 // 检测是否在输入的参数是否在允许的list中 var checkModule = function (module) { var module = module||process.env.MODULE_ENV; // 检查moduleList是否有重复 var hash = {} var repeatList = [] for(var l = 0;l < moduleList.length; l++){ if(hash[moduleList[l]]){ repeatList.push(moduleList[l]) } hash[moduleList[l]] = true } if(repeatList.length > 0){ console.log(chalk.red('moduleList 有重复:')) console.log(chalk.red(repeatList.toString())) return false } let result = true let illegalParam = '' for (let moduleToBuild of module.split(',')) { if (moduleList.indexOf(moduleToBuild) === -1) { result = false illegalParam = moduleToBuild break } } if(result === false){ console.log(chalk.red('参数错误,允许的参数为:')) console.log(chalk.green(moduleList.toString())) console.log(chalk.yellow(`非法参数:${illegalParam}`)) } return result } // 获取当前要打包的模块列表 function getModuleToBuild () { let moduleToBuild = [] if (process.env.NODE_ENV === 'production') { /* 部署态,构建要打包的模块列表,如果指定了要打包的模块,那么按照指定的模块配置入口 * 这里有个特性,即使参数未传,那么获取到的undefined也是字符串类型的,不是undefined类型 * */ if (process.env.MODULE_ENV !== 'undefined') { moduleToBuild = process.env.MODULE_ENV.split(',') } else { // 如果未指定要打包的模块,那么打包所有模块 moduleToBuild = moduleList } } else { // 开发态,获取所有的模块列表 moduleToBuild = moduleList } return moduleToBuild } exports.moduleList = moduleList exports.checkModule = checkModule exports.getModuleToBuild = getModuleToBuild
Ignore Space
Show notes
View
doc.txt
node webpack 多config 编译执行 https://cloud.tencent.com/developer/section/1477277 parallel-webpack 多config 并行执行编译,这样提高速度 192.168.4.194 项目文件:/filesdisk2/eap5/web/workspace/project/deploy /filesdisk2/eap5/studio/workspace/project/deploy/ 192.168.4.193 项目文件: /opt/eap5/desktop/preview/ deploy最终的项目部署目录 http://192.168.4.194:3000/project/01521/mokuai/shitu/abc/dtv/1.0.0/index.html 让npm run dev在Linux后台 持久运行 nohup npm run dev >/dev/null 2>&1 & exit 杀端口进程 netstat -apn|grep 3000 kill -9 18164 下面几个版本组合(有些版本没有列出来)。 npm install -g node-gyp https://github.com/webpack-contrib/sass-loader/blob/v6.0.7/package.json node-sass 对环境的要求 Node 12 的话要 node-sass 4.12+ 然页sass-loader 版本8的, 配对 node-sass版本4 npm i sass-loader@8.0.2 node-sass@4.13.0 -D npm rebuild node-sass npm i less@4.1.1 less-loader@3.0.0 -D npm cache clean -f rimraf node_modules npm shrinkwrap // npm-shrinkwrap.json 锁定包版本环境 1:npm install webpack -g 2: npm install webpack-cli -g 3: npm init -y 4: npm install webpack --save-dev 5: npm install html-webpack-plugin (html编译插件) 6:npm install clean-webpack-plugin 6.1: npm install webpack-dev-server (服务插件) 6.2: npm install style-loader css-loader (css打包插件) 6.3: npm install file-loader url-loader (文件图片打包插件) 6.4: npm install less-loader (less打包插件) 6.5: npm install sass scss --save-dev (sass scss打包插件) 6.6: npm install sass-loader nade-sass (sass打包插件) 7新建一个src文件夹 和 less文件夹 和webpack.config.js //以element 方式打包各各组件,做为按需导出使用 ElementUI/babel-plugin-component .babelrc "plugins": ["transform-vue-jsx", "transform-runtime", [ "component", { "libraryName": "hi-ui", "style":false } ]], vue2 使用 vite 所需求的步骤: 1、相关包安装 npm i '@vitejs/plugin-vue' '@vue/compiler-sfc' vite vite-plugin-vue2 -D 2、添加vite.confing.js import { createVuePlugin } from "vite-plugin-vue2"; 在配置项中,转vue plugins: [createVuePlugin()], 3、修改vite/dist/client/client.js case 'error': //判断当前出错的页面 let locPath = location.pathname.split('/'); locPath.pop(); if(err.id.indexOf(locPath.join('/'))==-1)break; case 'update': return;//让用户手动去刷新 08335 case 'full-reload': return;//让用户手动去刷新 08335 报类似这样的错误: Current process list running is not in sync with saved list. App BookStack differs. Type ‘pm2 save’ to synchronize. 按先后顺序,执行如下操作: pm2 update pm2 save pm2 list npm i vite@2.3.7 --save-dev //fonticon这个版本才可以有图标显示 webpack5 https://blog.csdn.net/j178202798/category_11141799.html npm run build:debug ./project/zhuomianduanyanshi/biaozhundanju/view/biaodan/dtv/1.0.0 webpack 2 vite https://github.com/tnfe/wp2vite/blob/master/README.zh-CN.md 自动化构建工具(三)Parcel https://blog.csdn.net/weixin_42580704/article/details/108378689 https://www.parceljs.cn/getting_started.html
node webpack 多config 编译执行 https://cloud.tencent.com/developer/section/1477277 parallel-webpack 多config 并行执行编译,这样提高速度 192.168.4.194 项目文件:/filesdisk2/eap5/web/workspace/project/deploy /filesdisk2/eap5/studio/workspace/project/deploy/ 192.168.4.193 项目文件: /opt/eap5/desktop/preview/ deploy最终的项目部署目录 http://192.168.4.194:3000/project/01521/mokuai/shitu/abc/dtv/1.0.0/index.html 让npm run dev在Linux后台 持久运行 nohup npm run dev >/dev/null 2>&1 & exit 杀端口进程 netstat -apn|grep 3000 kill -9 18164 下面几个版本组合(有些版本没有列出来)。 npm install -g node-gyp https://github.com/webpack-contrib/sass-loader/blob/v6.0.7/package.json node-sass 对环境的要求 Node 12 的话要 node-sass 4.12+ 然页sass-loader 版本8的, 配对 node-sass版本4 npm i sass-loader@8.0.2 node-sass@4.13.0 -D npm rebuild node-sass npm i less@4.1.1 less-loader@3.0.0 -D npm cache clean -f rimraf node_modules npm shrinkwrap // npm-shrinkwrap.json 锁定包版本环境 1:npm install webpack -g 2: npm install webpack-cli -g 3: npm init -y 4: npm install webpack --save-dev 5: npm install html-webpack-plugin (html编译插件) 6:npm install clean-webpack-plugin 6.1: npm install webpack-dev-server (服务插件) 6.2: npm install style-loader css-loader (css打包插件) 6.3: npm install file-loader url-loader (文件图片打包插件) 6.4: npm install less-loader (less打包插件) 6.5: npm install sass scss --save-dev (sass scss打包插件) 6.6: npm install sass-loader nade-sass (sass打包插件) 7新建一个src文件夹 和 less文件夹 和webpack.config.js //以element 方式打包各各组件,做为按需导出使用 ElementUI/babel-plugin-component .babelrc "plugins": ["transform-vue-jsx", "transform-runtime", [ "component", { "libraryName": "hi-ui", "style":false } ]], vue2 使用 vite 所需求的步骤: 1、相关包安装 npm i '@vitejs/plugin-vue' '@vue/compiler-sfc' vite vite-plugin-vue2 -D 2、添加vite.confing.js import { createVuePlugin } from "vite-plugin-vue2"; 在配置项中,转vue plugins: [createVuePlugin()], 3、修改vite/dist/client/client.js case 'error': //判断当前出错的页面 let locPath = location.pathname.split('/'); locPath.pop(); if(err.id.indexOf(locPath.join('/'))==-1)break; case 'update': return;//让用户手动去刷新 08335 case 'full-reload': return;//让用户手动去刷新 08335 报类似这样的错误: Current process list running is not in sync with saved list. App BookStack differs. Type ‘pm2 save’ to synchronize. 按先后顺序,执行如下操作: pm2 update pm2 save pm2 list npm i vite@2.3.7 --save-dev //fonticon这个版本才可以有图标显示 webpack5 https://blog.csdn.net/j178202798/category_11141799.html npm run build:debug ./project/zhuomianduanyanshi/biaozhundanju/view/biaodan/dtv/1.0.0 webpack 2 vite https://github.com/tnfe/wp2vite/blob/master/README.zh-CN.md
Show line notes below