From 14fd93f7bed8643f740eb6b9546327df7c9d8cd0 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Wed, 28 Aug 2019 16:47:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4scripts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/scripts/build.js | 189 ----------------------------- public/react/src/scripts/concat.js | 169 -------------------------- public/react/src/scripts/start.js | 114 ----------------- public/react/src/scripts/test.js | 27 ----- 4 files changed, 499 deletions(-) delete mode 100644 public/react/src/scripts/build.js delete mode 100644 public/react/src/scripts/concat.js delete mode 100644 public/react/src/scripts/start.js delete mode 100644 public/react/src/scripts/test.js diff --git a/public/react/src/scripts/build.js b/public/react/src/scripts/build.js deleted file mode 100644 index ae6eade9b..000000000 --- a/public/react/src/scripts/build.js +++ /dev/null @@ -1,189 +0,0 @@ -'use strict'; - -// Do this as the first thing so that any code reading it knows the right env. -process.env.BABEL_ENV = 'production'; -process.env.NODE_ENV = 'production'; - -// Makes the script crash on unhandled rejections instead of silently -// ignoring them. In the future, promise rejections that are not handled will -// terminate the Node.js process with a non-zero exit code. -process.on('unhandledRejection', err => { - throw err; -}); - -// Ensure environment variables are read. -require('../config/env'); - -const path = require('path'); -const chalk = require('chalk'); -const fs = require('fs-extra'); -const webpack = require('webpack'); -const config = require('../config/webpack.config.prod'); -const paths = require('../config/paths'); -const checkRequiredFiles = require('react-dev-utils/checkRequiredFiles'); -const formatWebpackMessages = require('react-dev-utils/formatWebpackMessages'); -const printHostingInstructions = require('react-dev-utils/printHostingInstructions'); -const FileSizeReporter = require('react-dev-utils/FileSizeReporter'); -const printBuildError = require('react-dev-utils/printBuildError'); - -var CombinedStream = require('combined-stream'); -var fs2 = require('fs'); - -const measureFileSizesBeforeBuild = - FileSizeReporter.measureFileSizesBeforeBuild; -const printFileSizesAfterBuild = FileSizeReporter.printFileSizesAfterBuild; -const useYarn = fs.existsSync(paths.yarnLockFile); - -// These sizes are pretty large. We'll warn for bundles exceeding them. -const WARN_AFTER_BUNDLE_GZIP_SIZE = 512 * 1024; -const WARN_AFTER_CHUNK_GZIP_SIZE = 1024 * 1024; - -// Warn and crash if required files are missing -if (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) { - process.exit(1); -} - -// First, read the current file sizes in build directory. -// This lets us display how much they changed later. -measureFileSizesBeforeBuild(paths.appBuild) - .then(previousFileSizes => { - // Remove all content but keep the directory so that - // if you're in it, you don't end up in Trash - fs.emptyDirSync(paths.appBuild); - // Merge with the public folder - copyPublicFolder(); - // Start the webpack build - return build(previousFileSizes); - }) - .then( - ({ stats, previousFileSizes, warnings }) => { - if (warnings.length) { - console.log(chalk.yellow('Compiled with warnings.\n')); - console.log(warnings.join('\n\n')); - console.log( - '\nSearch for the ' + - chalk.underline(chalk.yellow('keywords')) + - ' to learn more about each warning.' - ); - console.log( - 'To ignore, add ' + - chalk.cyan('// eslint-disable-next-line') + - ' to the line before.\n' - ); - } else { - console.log(chalk.green('Compiled successfully.\n')); - } - - console.log('File sizes after gzip:\n'); - printFileSizesAfterBuild( - stats, - previousFileSizes, - paths.appBuild, - WARN_AFTER_BUNDLE_GZIP_SIZE, - WARN_AFTER_CHUNK_GZIP_SIZE - ); - console.log(); - - const appPackage = require(paths.appPackageJson); - const publicUrl = paths.publicUrl; - const publicPath = config.output.publicPath; - const buildFolder = path.relative(process.cwd(), paths.appBuild); - printHostingInstructions( - appPackage, - publicUrl, - publicPath, - buildFolder, - useYarn - ); - }, - err => { - console.log(chalk.red('Failed to compile.\n')); - printBuildError(err); - process.exit(1); - } - ); - -// Create the production build and print the deployment instructions. -function build(previousFileSizes) { - console.log('Creating an optimized production build...'); - - let compiler = webpack(config); - return new Promise((resolve, reject) => { - compiler.run((err, stats) => { - if (err) { - return reject(err); - } - const messages = formatWebpackMessages(stats.toJson({}, true)); - if (messages.errors.length) { - // Only keep the first error. Others are often indicative - // of the same problem, but confuse the reader with noise. - if (messages.errors.length > 1) { - messages.errors.length = 1; - } - return reject(new Error(messages.errors.join('\n\n'))); - } - if ( - process.env.CI && - (typeof process.env.CI !== 'string' || - process.env.CI.toLowerCase() !== 'false') && - messages.warnings.length - ) { - console.log( - chalk.yellow( - '\nTreating warnings as errors because process.env.CI = true.\n' + - 'Most CI servers set it automatically.\n' - ) - ); - return reject(new Error(messages.warnings.join('\n\n'))); - } - - generateNewIndexJsp(); - - return resolve({ - stats, - previousFileSizes, - warnings: messages.warnings, - }); - }); - }); -} - -function copyPublicFolder() { - fs.copySync(paths.appPublic, paths.appBuild, { - dereference: true, - filter: file => file !== paths.appHtml, - }); -} - - -function generateNewIndexJsp() { - // var combinedStream = CombinedStream.create(); - var filePath = paths.appBuild + '/index.html'; - // var htmlContent = fs2.createReadStream( filePath ) - - // stream没有replace方法 - // htmlContent = htmlContent.replace('/js/js_min_all.js', '/react/build/js/js_min_all.js') - // htmlContent = htmlContent.replace('/css/css_min_all.css', '/react/build/css/css_min_all.css') - - // combinedStream.append(htmlContent); - // combinedStream.pipe(fs2.createWriteStream( filePath )); - - var outputPath = paths.appBuild + '/../../../app/views/common/index.html.erb' - fs2.readFile(filePath, 'utf8', function (err,data) { - if (err) { - return console.log(err); - } - var result = data.replace('/js/js_min_all.js', '/react/build/js/js_min_all.js') - .replace('/js/js_min_all_2.js', '/react/build/js/js_min_all_2.js') - - .replace('/css/css_min_all.css', '/react/build/css/css_min_all.css') - .replace('/js/create_kindeditor.js', '/react/build/js/create_kindeditor.js') - .replace(/http:\/\/localhost:3000/g, ''); - - // .replace('/css/css_min_all.css', '/react/build/css/css_min_all.css'); - - fs2.writeFile(outputPath, result, 'utf8', function (err) { - if (err) return console.log(err); - }); - }); -} \ No newline at end of file diff --git a/public/react/src/scripts/concat.js b/public/react/src/scripts/concat.js deleted file mode 100644 index e327e50a4..000000000 --- a/public/react/src/scripts/concat.js +++ /dev/null @@ -1,169 +0,0 @@ -var fs = require('fs'); -var uglify = require("uglify-js"); -var path = require('path'); -var concat = require('concat') - -var results = []; -var walk = function(dir, done) { - - fs.readdir(dir, function(err, list) { - console.log(list) - if (err) return done(err); - var pending = list.length; - if (!pending) return done(null, results); - list.forEach(function(file) { - file = path.resolve(dir, file); - fs.stat(file, function(err, stat) { - if (stat && stat.isDirectory()) { - walk(file, function(err, res) { - // results = results.concat(res); - if (!--pending) done(null, results); - }); - } else { - results.push(file); - if (!--pending) done(null, results); - } - }); - }); - }); -}; - -// 需要输出文件名数组时改为true -var jsDir = './public/js/'; -var cssDir = './public/css' - -// true && -false && -walk(cssDir, function() { - console.log('results', results.length, results) -}) -// return; - -// ----------------------------------------------------------------------------- CSS - var cssResults = [ - - 'D:\\Code\\trustieplus\\public\\react\\public\\css\\edu-common.css', - 'D:\\Code\\trustieplus\\public\\react\\public\\css\\edu-public.css', - 'D:\\Code\\trustieplus\\public\\react\\public\\css\\taskstyle.css' , - - 'D:\\Code\\trustieplus\\public\\react\\public\\css\\font-awesome.css', - - 'D:\\Code\\trustieplus\\public\\react\\public\\css\\editormd.min.css', - 'D:\\Code\\trustieplus\\public\\react\\public\\css\\merge.css', - - ] - concat(cssResults, './public/css/css_min_all.css') - -return; - -// ----------------------------------------------------------------------------- JS - var _results = [ - - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\jquery-1.8.3.min.js', - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\editormd\\underscore.min.js', - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\editormd\\marked.min.js', - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\editormd\\prettify.min.js', - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\editormd\\raphael.min.js', - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\editormd\\sequence-diagram.min.js', - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\editormd\\flowchart.min.js', - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\editormd\\jquery.flowchart.min.js', - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\editormd\\editormd.min.js', - - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\codemirror\\codemirror.js', - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\codemirror\\mode\\javascript.js', - - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\diff_match_patch.js', - - - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\merge.js', - - 'D:\\Code\\trustieplus\\public\\react\\public\\js\\edu_tpi.js', - - ] - - // 合并js时,需确保每个js都正常结束,未正常结束的需要在js文件结尾加一个;好,不然会出现脚本错。 - concat(_results, './public/js/js_min_all.js') - - // var uglified = uglify.minify(['./public/js/merge.js']); - // console.log('uglified', uglified) - // fs.writeFile('concat.min.js', uglified.code, function (err){ - // if(err) { - // console.log(err); - // } else { - // console.log("Script generated and saved:", 'concat.min.js'); - // } - // }); - - -// var uglified = uglify.minify(['file1.js', 'file2.js', 'file3.js']); - - - -/** - 优化 - underscore被单独加载了,去掉'D:\\Code\\trustieplus\\public\\react\\public\\js\\editormd\\underscore.min.js', - marked - raphaeljs sequence diagrams 1.0.4 - - - 统计 js_min_all加载的js: - https://github.com/paulmillr/es6-shim - jQuery v1.8.3 jquery.com - Underscore.js 1.8.2 - marked v0.3.3 - ??? - Raphaël 2.1.3 - JavaScript Vector Library - flowchart, v1.3.4 - editormd.js - - // Codemirror单独放置,哪些地方还在使用Codemirror? - // 新版使用了Monaco 无需一些Codemirror插件了 - CodeMirror - cm active-line.js - cm mode javascript - cm merge.js - CodeMirror addon hint - cm showHint - cm anyword-hint - CodeMirror python - CodeMirror c-like(java) - CodeMirror matchbrackets - - 余下 - CodeMirror - diff - merge - - 移除的在js_min_cm.js - /** - active-line.js - mode javascript - fuzzysort - showHint - javascript-hint - anyword-hint - CodeMirror python - CodeMirror c-like(java) - CodeMirror matchbrackets - - / - - ???——> - // Copyright (C) 2006 Google Inc. - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - - - 去掉了 - marked v0.3.3 去不了,去掉后 这句代码会报错:window.editormd.markdownToHTML , TODO 看能否去掉单独加载marked的地方 - */ \ No newline at end of file diff --git a/public/react/src/scripts/start.js b/public/react/src/scripts/start.js deleted file mode 100644 index 3f68f1576..000000000 --- a/public/react/src/scripts/start.js +++ /dev/null @@ -1,114 +0,0 @@ -'use strict'; - -// Do this as the first thing so that any code reading it knows the right env. -process.env.BABEL_ENV = 'development'; -process.env.NODE_ENV = 'development'; - - -// Makes the script crash on unhandled rejections instead of silently -// ignoring them. In the future, promise rejections that are not handled will -// terminate the Node.js process with a non-zero exit code. -process.on('unhandledRejection', err => { - throw err; -}); - -// Ensure environment variables are read. -require('../config/env'); - -const fs = require('fs'); -const chalk = require('chalk'); -const webpack = require('webpack'); -const WebpackDevServer = require('webpack-dev-server'); -const clearConsole = require('react-dev-utils/clearConsole'); -const checkRequiredFiles = require('react-dev-utils/checkRequiredFiles'); -const { - choosePort, - createCompiler, - prepareProxy, - prepareUrls, -} = require('react-dev-utils/WebpackDevServerUtils'); -const openBrowser = require('react-dev-utils/openBrowser'); -const paths = require('../config/paths'); -const config = require('../config/webpack.config.dev'); -const createDevServerConfig = require('../config/webpackDevServer.config'); - -const useYarn = fs.existsSync(paths.yarnLockFile); -const isInteractive = process.stdout.isTTY; - -const portSetting = require(paths.appPackageJson).port -if ( portSetting ) { - process.env.port = portSetting -} - -// Warn and crash if required files are missing -if (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) { - process.exit(1); -} - -// Tools like Cloud9 rely on this. -const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000; -const HOST = process.env.HOST || '0.0.0.0'; - -if (process.env.HOST) { - console.log( - chalk.cyan( - `Attempting to bind to HOST environment variable: ${chalk.yellow( - chalk.bold(process.env.HOST) - )}` - ) - ); - console.log( - `If this was unintentional, check that you haven't mistakenly set it in your shell.` - ); - console.log(`Learn more here: ${chalk.yellow('http://bit.ly/2mwWSwH')}`); - console.log(); -} - -// We attempt to use the default port but if it is busy, we offer the user to -// run on a different port. `choosePort()` Promise resolves to the next free port. -choosePort(HOST, DEFAULT_PORT) - .then(port => { - if (port == null) { - // We have not found a port. - return; - } - const protocol = process.env.HTTPS === 'true' ? 'https' : 'http'; - const appName = require(paths.appPackageJson).name; - const urls = prepareUrls(protocol, HOST, port); - // Create a webpack compiler that is configured with custom messages. - const compiler = createCompiler(webpack, config, appName, urls, useYarn); - // Load proxy config - const proxySetting = require(paths.appPackageJson).proxy; - console.log('-------------------------proxySetting:', proxySetting) - const proxyConfig = prepareProxy(proxySetting, paths.appPublic); - // Serve webpack assets generated by the compiler over a web sever. - const serverConfig = createDevServerConfig( - proxyConfig, - urls.lanUrlForConfig - ); - const devServer = new WebpackDevServer(compiler, serverConfig); - // Launch WebpackDevServer. - devServer.listen(port, HOST, err => { - if (err) { - return console.log(err); - } - if (isInteractive) { - clearConsole(); - } - console.log(chalk.cyan('Starting the development server...\n')); - openBrowser(urls.localUrlForBrowser); - }); - - ['SIGINT', 'SIGTERM'].forEach(function(sig) { - process.on(sig, function() { - devServer.close(); - process.exit(); - }); - }); - }) - .catch(err => { - if (err && err.message) { - console.log(err.message); - } - process.exit(1); - }); diff --git a/public/react/src/scripts/test.js b/public/react/src/scripts/test.js deleted file mode 100644 index 45fd882fd..000000000 --- a/public/react/src/scripts/test.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -// Do this as the first thing so that any code reading it knows the right env. -process.env.BABEL_ENV = 'test'; -process.env.NODE_ENV = 'test'; -process.env.PUBLIC_URL = ''; - -// Makes the script crash on unhandled rejections instead of silently -// ignoring them. In the future, promise rejections that are not handled will -// terminate the Node.js process with a non-zero exit code. -process.on('unhandledRejection', err => { - throw err; -}); - -// Ensure environment variables are read. -require('../config/env'); - -const jest = require('jest'); -const argv = process.argv.slice(2); - -// Watch unless on CI or in coverage mode -if (!process.env.CI && argv.indexOf('--coverage') < 0) { - argv.push('--watch'); -} - - -jest.run(argv);