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
编译后任务中心的路径问题 少了一个/
master
1 parent
1f679c4
commit
1cb163dc954d5aa27e8e517fb68183ada0943d59
caibinghong
authored
on 15 Dec 2021
Showing
2 changed files
build/build.js
build/webpack.config.js
Ignore Space
Show notes
View
build/build.js
'use strict' require('./check-versions')() const fs = require("fs") const chalk = require('chalk') const { merge } = require('webpack-merge'); const packageConfig = require('../package.json') process.env.NODE_ENV = 'production' // 用来记录当前打包的模块路径列表 let moduleList = (process.argv[2] || "").replace(/\s*$/g, "") if (moduleList == "") { moduleList = require('./module-conf').moduleList || [] } else { moduleList = moduleList.split(',') } // console.log('----moduleList-----:\n',moduleList,'\n----------------------') // 如果有传参时,对传入的参数进行检测,如果参数非法,那么停止打包操作 const checkModule = require('./module-conf').checkModule for (let i = moduleList.length - 1; i >= 0; i--) { if (!checkModule(moduleList[i])) { return } } const path = require('path') // const ora = require('ora') const rm = require('rimraf') const webpack = require('webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') const webpackConfig = require('./webpack.base.conf') let webpackList = [], rmList = []; //删除文件 function getRm(pathStr) { return new Promise((resolve, reject) => { rm(pathStr, err => { if (err) { reject(pathStr + 'del failed!!'); throw err; } resolve(); }); }).then(res => { //console.log(res) }); } //构建webpack 配置 for (let i = moduleList.length - 1; i >= 0; i--) { let MODULE = moduleList[i]; //构建时要删除的模块目录 rmList.push(getRm(path.resolve(__dirname, '../dist', MODULE))); //添加每个模块的webpack 配置 let MODULE_NAME = MODULE.split('/').pop(); let entry = {}; entry[MODULE_NAME] = `${moduleList[i]}/index.js`; let wpk = merge({}, webpackConfig, { entry: entry, output: { path: path.resolve(__dirname, '../dist', MODULE), publicPath:`/e5/render/${packageConfig.author}/${MODULE.replace('./','')}/` } }); let htmlTemplate = `${MODULE}/index.html` var checkPath = fs.existsSync(htmlTemplate); //如果目录存在 返回 true ,如果目录不存在 返回false if (checkPath == false) { htmlTemplate = path.resolve(__dirname, '../index.html') } wpk.plugins.push( new HtmlWebpackPlugin({ filename: path.resolve(__dirname, '../dist', MODULE, 'index.html'), template: htmlTemplate,//如果html 不存在考虑用全局根目录下 inject: true, // 这里要指定把哪些chunks追加到html中,默认会把所有入口的chunks追加到html中,这样是不行的 // chunks: ['vendor', 'manifest', 'elementUI', 'hiui', MODULE_NAME], minify: { removeComments: true,//去除注释 collapseWhitespace: true,//是否去除空格 } })) webpackList.push(wpk); } //编译所有 // webpack(webpackList, (err, stats) => { // if (err || stats.hasErrors()) {//编译错误不在 err 对象内,而是需要使用 stats.hasErrors() 单独处理 // const info = stats.toJson(); // // console.error(info.errors); // for(let i=0,l=info.errors.length;i<l;i++){ // console.log(chalk.red(info.errors[i].message)); // } // // process.exit(1); // } // // console.log(chalk.cyan(' Build complete.\n')); // }); console.log(chalk.green(`正在编译,总共(${moduleList.length})页面...`)) console.log(`===============================================================`); console.log(chalk.yellow(`序号\t 模块\t 路径`)); console.log(`=================================================================`); let webpackIndex=0; function doWebpack(webpackItem){ let mods = []; for(let name in webpackItem.entry){ let ent = webpackItem.entry[name]; ent = ent.replace(/\/index\.js/gi,''); ent = ent.replace(/\/dtv\/1\.0\.0\/desktop/gi,''); ent = ent.split('/').pop(); console.log(`${webpackIndex}\t${ent}\t 路径`,webpackItem.entry[name]); } webpack(webpackItem, (err, stats) => { if (err || stats.hasErrors()) {//编译错误不在 err 对象内,而是需要使用 stats.hasErrors() 单独处理 const info = stats.toJson(); // console.error(info.errors); for(let i=0,l=info.errors.length;i<l;i++){ console.log(chalk.red(info.errors[i].message)); } // process.exit(1); } //else{ // 处理完成 webpackIndex++; webpackList[webpackIndex]&&doWebpack(webpackList[webpackIndex]); // } }); } doWebpack(webpackList[webpackIndex]);
'use strict' require('./check-versions')() const fs = require("fs") const chalk = require('chalk') const { merge } = require('webpack-merge'); const packageConfig = require('../package.json') process.env.NODE_ENV = 'production' // 用来记录当前打包的模块路径列表 let moduleList = (process.argv[2] || "").replace(/\s*$/g, "") if (moduleList == "") { moduleList = require('./module-conf').moduleList || [] } else { moduleList = moduleList.split(',') } // console.log('----moduleList-----:\n',moduleList,'\n----------------------') // 如果有传参时,对传入的参数进行检测,如果参数非法,那么停止打包操作 const checkModule = require('./module-conf').checkModule for (let i = moduleList.length - 1; i >= 0; i--) { if (!checkModule(moduleList[i])) { return } } const path = require('path') // const ora = require('ora') const rm = require('rimraf') const webpack = require('webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') const webpackConfig = require('./webpack.base.conf') let webpackList = [], rmList = []; //删除文件 function getRm(pathStr) { return new Promise((resolve, reject) => { rm(pathStr, err => { if (err) { reject(pathStr + 'del failed!!'); throw err; } resolve(); }); }).then(res => { //console.log(res) }); } //构建webpack 配置 for (let i = moduleList.length - 1; i >= 0; i--) { let MODULE = moduleList[i]; //构建时要删除的模块目录 rmList.push(getRm(path.resolve(__dirname, '../dist', MODULE))); //添加每个模块的webpack 配置 let MODULE_NAME = MODULE.split('/').pop(); let entry = {}; entry[MODULE_NAME] = `${moduleList[i]}/index.js`; let wpk = merge({}, webpackConfig, { entry: entry, output: { path: path.resolve(__dirname, '../dist', MODULE), publicPath:`/e5/render/${packageConfig.author}/${MODULE.replace('./','')}` } }); let htmlTemplate = `${MODULE}/index.html` var checkPath = fs.existsSync(htmlTemplate); //如果目录存在 返回 true ,如果目录不存在 返回false if (checkPath == false) { htmlTemplate = path.resolve(__dirname, '../index.html') } wpk.plugins.push( new HtmlWebpackPlugin({ filename: path.resolve(__dirname, '../dist', MODULE, 'index.html'), template: htmlTemplate,//如果html 不存在考虑用全局根目录下 inject: true, // 这里要指定把哪些chunks追加到html中,默认会把所有入口的chunks追加到html中,这样是不行的 // chunks: ['vendor', 'manifest', 'elementUI', 'hiui', MODULE_NAME], minify: { removeComments: true,//去除注释 collapseWhitespace: true,//是否去除空格 } })) webpackList.push(wpk); } //编译所有 // webpack(webpackList, (err, stats) => { // if (err || stats.hasErrors()) {//编译错误不在 err 对象内,而是需要使用 stats.hasErrors() 单独处理 // const info = stats.toJson(); // // console.error(info.errors); // for(let i=0,l=info.errors.length;i<l;i++){ // console.log(chalk.red(info.errors[i].message)); // } // // process.exit(1); // } // // console.log(chalk.cyan(' Build complete.\n')); // }); console.log(chalk.green(`正在编译,总共(${moduleList.length})页面...`)) console.log(`===============================================================`); console.log(chalk.yellow(`序号\t 模块\t 路径`)); console.log(`=================================================================`); let webpackIndex=0; function doWebpack(webpackItem){ let mods = []; for(let name in webpackItem.entry){ let ent = webpackItem.entry[name]; ent = ent.replace(/\/index\.js/gi,''); ent = ent.replace(/\/dtv\/1\.0\.0\/desktop/gi,''); ent = ent.split('/').pop(); console.log(`${webpackIndex}\t${ent}\t 路径`,webpackItem.entry[name]); } webpack(webpackItem, (err, stats) => { if (err || stats.hasErrors()) {//编译错误不在 err 对象内,而是需要使用 stats.hasErrors() 单独处理 const info = stats.toJson(); // console.error(info.errors); for(let i=0,l=info.errors.length;i<l;i++){ console.log(chalk.red(info.errors[i].message)); } // process.exit(1); } //else{ // 处理完成 webpackIndex++; webpackList[webpackIndex]&&doWebpack(webpackList[webpackIndex]); // } }); } doWebpack(webpackList[webpackIndex]);
Ignore Space
Show notes
View
build/webpack.config.js
'use strict' process.env.NODE_ENV = 'production' require('./check-versions')() const fs = require("fs") const chalk = require('chalk') const { merge } = require('webpack-merge'); // 用来记录当前打包的模块路径列表,判断进程参数 let moduleList = (process.argv[2] || "").replace(/\s*$/g, "") if (moduleList == "") { moduleList = require('./module-conf').moduleList || [] } else { moduleList = moduleList.split(',') } // 如果有传参时,对传入的参数进行检测,如果参数非法,那么停止打包操作 const checkModule = require('./module-conf').checkModule for (let i = moduleList.length - 1; i >= 0; i--) { if (!checkModule(moduleList[i])) { return } } const path = require('path') // const ora = require('ora') const rm = require('rimraf') const webpack = require('webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') const webpackConfig = require('./webpack.base.conf') let webpackList = [], rmList = []; const packageConfig = require('../package.json') //删除文件 function getRm(pathStr) { return new Promise((resolve, reject) => { rm(pathStr, err => { if (err) { reject(pathStr + 'del failed!!'); throw err; } resolve(); }); }).then(res => { //console.log(res) }); } //构建webpack 配置 for (let i = moduleList.length - 1; i >= 0; i--) { let MODULE = moduleList[i]; //构建时要删除的模块目录 rmList.push(getRm(path.resolve(__dirname, '../dist', MODULE))); //添加每个模块的webpack 配置 let MODULE_NAME = MODULE.split('/').pop(); let entry = {}; entry[MODULE_NAME] = `${MODULE}/index.js`; // console.log(`/e5/${MODULE.replace('./','')}`); let wpk = merge({}, webpackConfig, { entry: entry, output: { path: path.resolve(__dirname, '../dist', MODULE), // filename: 'static/js/[name].[contenthash:10].js' // publicPath:`/e5/render/${MODULE.replace('./','')}` publicPath:`/e5/render/${packageConfig.author}/${MODULE.replace('./','')}/` } }); let htmlTemplate = `${MODULE}/index.html` var checkPath = fs.existsSync(htmlTemplate); //如果目录存在 返回 true ,如果目录不存在 返回false if (checkPath == false) { htmlTemplate = path.resolve(__dirname, '../index.html') } wpk.plugins.push( new HtmlWebpackPlugin({ filename: path.resolve(__dirname, '../dist', MODULE, 'index.html'), template: htmlTemplate,//如果html 不存在考虑用全局根目录下 inject: true, // 这里要指定把哪些chunks追加到html中,默认会把所有入口的chunks追加到html中,这样是不行的 // chunks: ['vendor', 'manifest', 'elementUI','app','hiui', MODULE_NAME], minify: { removeComments: true,//去除注释 collapseWhitespace: true,//是否去除空格 removeAttributeQuotes: true//去除空属性 }, compile: true })) webpackList.push(wpk); } module.exports = webpackList;
'use strict' process.env.NODE_ENV = 'production' require('./check-versions')() const fs = require("fs") const chalk = require('chalk') const { merge } = require('webpack-merge'); // 用来记录当前打包的模块路径列表,判断进程参数 let moduleList = (process.argv[2] || "").replace(/\s*$/g, "") if (moduleList == "") { moduleList = require('./module-conf').moduleList || [] } else { moduleList = moduleList.split(',') } // 如果有传参时,对传入的参数进行检测,如果参数非法,那么停止打包操作 const checkModule = require('./module-conf').checkModule for (let i = moduleList.length - 1; i >= 0; i--) { if (!checkModule(moduleList[i])) { return } } const path = require('path') // const ora = require('ora') const rm = require('rimraf') const webpack = require('webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') const webpackConfig = require('./webpack.base.conf') let webpackList = [], rmList = []; const packageConfig = require('../package.json') //删除文件 function getRm(pathStr) { return new Promise((resolve, reject) => { rm(pathStr, err => { if (err) { reject(pathStr + 'del failed!!'); throw err; } resolve(); }); }).then(res => { //console.log(res) }); } //构建webpack 配置 for (let i = moduleList.length - 1; i >= 0; i--) { let MODULE = moduleList[i]; //构建时要删除的模块目录 rmList.push(getRm(path.resolve(__dirname, '../dist', MODULE))); //添加每个模块的webpack 配置 let MODULE_NAME = MODULE.split('/').pop(); let entry = {}; entry[MODULE_NAME] = `${MODULE}/index.js`; // console.log(`/e5/${MODULE.replace('./','')}`); let wpk = merge({}, webpackConfig, { entry: entry, output: { path: path.resolve(__dirname, '../dist', MODULE), // filename: 'static/js/[name].[contenthash:10].js' // publicPath:`/e5/render/${MODULE.replace('./','')}` publicPath:`/e5/render/${packageConfig.author}/${MODULE.replace('./','')}` } }); let htmlTemplate = `${MODULE}/index.html` var checkPath = fs.existsSync(htmlTemplate); //如果目录存在 返回 true ,如果目录不存在 返回false if (checkPath == false) { htmlTemplate = path.resolve(__dirname, '../index.html') } wpk.plugins.push( new HtmlWebpackPlugin({ filename: path.resolve(__dirname, '../dist', MODULE, 'index.html'), template: htmlTemplate,//如果html 不存在考虑用全局根目录下 inject: true, // 这里要指定把哪些chunks追加到html中,默认会把所有入口的chunks追加到html中,这样是不行的 // chunks: ['vendor', 'manifest', 'elementUI','app','hiui', MODULE_NAME], minify: { removeComments: true,//去除注释 collapseWhitespace: true,//是否去除空格 removeAttributeQuotes: true//去除空属性 }, compile: true })) webpackList.push(wpk); } module.exports = webpackList;
Show line notes below