From c9458c88008504e3c36a1033f7d643f9467abe40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Thu, 4 Jul 2019 16:24:00 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/shixunHomework/ShixunStudentWork.js | 4 ++-- .../src/modules/tpm/challengesnew/css/TPMchallengesnew.css | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js index f5029d9c5..4f1ddb027 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js @@ -572,10 +572,10 @@ class ShixunStudentWork extends Component {

- {data&&data.homework_name} + {jobsettingsdata === undefined ? "" : jobsettingsdata.data.homework_name}

返回 diff --git a/public/react/src/modules/tpm/challengesnew/css/TPMchallengesnew.css b/public/react/src/modules/tpm/challengesnew/css/TPMchallengesnew.css index 9a8af13e7..fb23ba4b8 100644 --- a/public/react/src/modules/tpm/challengesnew/css/TPMchallengesnew.css +++ b/public/react/src/modules/tpm/challengesnew/css/TPMchallengesnew.css @@ -60,7 +60,7 @@ a{ #exercisememoMD .CodeMirror { margin-top: 31px !important; - height: 700px !important; + height: 374px !important; /*width: 579px !important;*/ } @@ -125,7 +125,7 @@ a{ #neweditanswer .editormd-preview { top: 40px !important; height: 364px !important; - width: 578px !important; + width: 551px !important; } #repository_url_tip { From e8f91c68f29e2051df22cd1c7473c9dd53de106f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 4 Jul 2019 16:28:03 +0800 Subject: [PATCH 2/4] b --- public/react/config/webpack.config.dev.js | 41 +++++++++++++++++ public/react/config/webpack.config.prod.js | 52 ++++++++++++++-------- 2 files changed, 75 insertions(+), 18 deletions(-) diff --git a/public/react/config/webpack.config.dev.js b/public/react/config/webpack.config.dev.js index 2fc1bbe64..48e4f7f52 100644 --- a/public/react/config/webpack.config.dev.js +++ b/public/react/config/webpack.config.dev.js @@ -9,6 +9,7 @@ const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); const WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin'); const eslintFormatter = require('react-dev-utils/eslintFormatter'); const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); +const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin'); // const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin'); const getClientEnvironment = require('./env'); const paths = require('./paths'); @@ -249,6 +250,46 @@ module.exports = { // https://github.com/jmblog/how-to-optimize-momentjs-with-webpack // You can remove this if you don't use Moment.js: new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), + new ParallelUglifyPlugin({ + // 传递给 UglifyJS的参数如下: + uglifyJS: { + output: { + /* + 是否输出可读性较强的代码,即会保留空格和制表符,默认为输出,为了达到更好的压缩效果, + 可以设置为false + */ + beautify: false, + /* + 是否保留代码中的注释,默认为保留,为了达到更好的压缩效果,可以设置为false + */ + comments: false + }, + compress: { + /* + 是否在UglifyJS删除没有用到的代码时输出警告信息,默认为输出,可以设置为false关闭这些作用 + 不大的警告 + */ + warnings: false, + + /* + 是否删除代码中所有的console语句,默认为不删除,开启后,会删除所有的console语句 + */ + drop_console: true, + + /* + 是否内嵌虽然已经定义了,但是只用到一次的变量,比如将 var x = 1; y = x, 转换成 y = 5, 默认为不 + 转换,为了达到更好的压缩效果,可以设置为false + */ + collapse_vars: true, + + /* + 是否提取出现了多次但是没有定义成变量去引用的静态值,比如将 x = 'xxx'; y = 'xxx' 转换成 + var a = 'xxxx'; x = a; y = a; 默认为不转换,为了达到更好的压缩效果,可以设置为false + */ + reduce_vars: true + } + } + }), ], // Some libraries import Node modules but don't use them in the browser. // Tell Webpack to provide empty mocks for them so importing them works. diff --git a/public/react/config/webpack.config.prod.js b/public/react/config/webpack.config.prod.js index abeb58db9..e70e04fac 100644 --- a/public/react/config/webpack.config.prod.js +++ b/public/react/config/webpack.config.prod.js @@ -10,6 +10,8 @@ const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); const SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin'); const eslintFormatter = require('react-dev-utils/eslintFormatter'); const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); +const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin'); + const paths = require('./paths'); const getClientEnvironment = require('./env'); @@ -270,25 +272,39 @@ module.exports = { // Otherwise React will be compiled in the very slow development mode. new webpack.DefinePlugin(env.stringified), // Minify the code. - new webpack.optimize.UglifyJsPlugin({ - compress: { + // new webpack.optimize.UglifyJsPlugin({ + // compress: { + // warnings: false, + // // Disabled because of an issue with Uglify breaking seemingly valid code: + // // https://github.com/facebookincubator/create-react-app/issues/2376 + // // Pending further investigation: + // // https://github.com/mishoo/UglifyJS2/issues/2011 + // comparisons: false, + // }, + // mangle: { + // safari10: true, + // }, + // output: { + // comments: false, + // // Turned on because emoji and regex is not minified properly using default + // // https://github.com/facebookincubator/create-react-app/issues/2488 + // ascii_only: true, + // }, + // sourceMap: shouldUseSourceMap, + // }), + + new ParallelUglifyPlugin({ + cacheDir: '.cache/', + uglifyJS:{ + output: { + comments: false + }, warnings: false, - // Disabled because of an issue with Uglify breaking seemingly valid code: - // https://github.com/facebookincubator/create-react-app/issues/2376 - // Pending further investigation: - // https://github.com/mishoo/UglifyJS2/issues/2011 - comparisons: false, - }, - mangle: { - safari10: true, - }, - output: { - comments: false, - // Turned on because emoji and regex is not minified properly using default - // https://github.com/facebookincubator/create-react-app/issues/2488 - ascii_only: true, - }, - sourceMap: shouldUseSourceMap, + compress: { + drop_debugger: true, + drop_console: true + } + } }), // Note: this won't work without ExtractTextPlugin.extract(..) in `loaders`. new ExtractTextPlugin({ From 648262012036ddbbb912e6a75e2216e5d71597ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 4 Jul 2019 16:36:32 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 113 +++---- public/react/config/webpack.config.dev.js | 309 ----------------- public/react/config/webpack.config.prod.js | 365 --------------------- 3 files changed, 57 insertions(+), 730 deletions(-) delete mode 100644 public/react/config/webpack.config.dev.js delete mode 100644 public/react/config/webpack.config.prod.js diff --git a/.gitignore b/.gitignore index ecc3e003a..18e26e891 100644 --- a/.gitignore +++ b/.gitignore @@ -1,56 +1,57 @@ -# See https://help.github.com/articles/ignoring-files for more about ignoring files. -# -# If you find yourself ignoring temporary files generated by your text editor -# or operating system, you probably want to add a global ignore instead: -# git config --global core.excludesfile '~/.gitignore_global' - -# Ignore bundler config. -/.bundle - -# mac -*.DS_Store - -# Ignore all logfiles and tempfiles. -/log/* -/tmp/* -!/log/.keep -!/tmp/.keep - -# Ignore uploaded files in development -/storage/* - -/node_modules -/yarn-error.log - -# /public/assets -.byebug_history - -# Ignore master key for decrypting credentials and more. -/config/master.key -/config/database.yml -/.idea/* - -# Ignore react node_modules -/public/react/build -/public/react/build/ -/public/react/node_modules/ -/public/react/config/stats.json -/public/react/stats.json - -/public/npm-debug.log - -# avatars -/public/images/avatars - -/config/secrets.yml -/files/archiveZip/* -/files/cache_store/* -public/upload.html -/config/configuration.yml -/config/initializers/gitlab_config.rb -/db/schema.rb -.vscode/ -vendor/bundle/ -.ruby-version -.ruby-gemset - +# See https://help.github.com/articles/ignoring-files for more about ignoring files. +# +# If you find yourself ignoring temporary files generated by your text editor +# or operating system, you probably want to add a global ignore instead: +# git config --global core.excludesfile '~/.gitignore_global' + +# Ignore bundler config. +/.bundle + +# mac +*.DS_Store + +# Ignore all logfiles and tempfiles. +/log/* +/tmp/* +!/log/.keep +!/tmp/.keep + +# Ignore uploaded files in development +/storage/* + +/node_modules +/yarn-error.log + +# /public/assets +.byebug_history + +# Ignore master key for decrypting credentials and more. +/config/master.key +/config/database.yml +/.idea/* + +# Ignore react node_modules +/public/react/build +/public/react/build/ +/public/react/.cache +/public/react/node_modules/ +/public/react/config/stats.json +/public/react/stats.json + +/public/npm-debug.log + +# avatars +/public/images/avatars + +/config/secrets.yml +/files/archiveZip/* +/files/cache_store/* +public/upload.html +/config/configuration.yml +/config/initializers/gitlab_config.rb +/db/schema.rb +.vscode/ +vendor/bundle/ +.ruby-version +.ruby-gemset + diff --git a/public/react/config/webpack.config.dev.js b/public/react/config/webpack.config.dev.js deleted file mode 100644 index 48e4f7f52..000000000 --- a/public/react/config/webpack.config.dev.js +++ /dev/null @@ -1,309 +0,0 @@ -'use strict'; - -const autoprefixer = require('autoprefixer'); -const path = require('path'); -const webpack = require('webpack'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); -const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); -const WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin'); -const eslintFormatter = require('react-dev-utils/eslintFormatter'); -const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); -const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin'); -// const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin'); -const getClientEnvironment = require('./env'); -const paths = require('./paths'); - -// Webpack uses `publicPath` to determine where the app is being served from. -// In development, we always serve from the root. This makes config easier. -const publicPath = '/'; -// `publicUrl` is just like `publicPath`, but we will provide it to our app -// as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript. -// Omit trailing slash as %PUBLIC_PATH%/xyz looks better than %PUBLIC_PATH%xyz. -const publicUrl = ''; -// Get environment variables to inject into our app. -const env = getClientEnvironment(publicUrl); - -// This is the development configuration. -// It is focused on developer experience and fast rebuilds. -// The production configuration is different and lives in a separate file. -module.exports = { - // You may want 'eval' instead if you prefer to see the compiled output in DevTools. - // See the discussion in https://github.com/facebookincubator/create-react-app/issues/343. - devtool: 'cheap-module-source-map', - // These are the "entry points" to our application. - // This means they will be the "root" imports that are included in JS bundle. - // The first two entry points enable "hot" CSS and auto-refreshes for JS. - entry: [ - // We ship a few polyfills by default: - require.resolve('./polyfills'), - // Include an alternative client for WebpackDevServer. A client's job is to - // connect to WebpackDevServer by a socket and get notified about changes. - // When you save a file, the client will either apply hot updates (in case - // of CSS changes), or refresh the page (in case of JS changes). When you - // make a syntax error, this client will display a syntax error overlay. - // Note: instead of the default WebpackDevServer client, we use a custom one - // to bring better experience for Create React App users. You can replace - // the line below with these two lines if you prefer the stock client: - // require.resolve('webpack-dev-server/client') + '?/', - // require.resolve('webpack/hot/dev-server'), - require.resolve('react-dev-utils/webpackHotDevClient'), - // Finally, this is your app's code: - paths.appIndexJs, - // We include the app code last so that if there is a runtime error during - // initialization, it doesn't blow up the WebpackDevServer client, and - // changing JS code would still trigger a refresh. - ], - output: { - // Add /* filename */ comments to generated require()s in the output. - pathinfo: true, - // This does not produce a real file. It's just the virtual path that is - // served by WebpackDevServer in development. This is the JS bundle - // containing code from all our entry points, and the Webpack runtime. - filename: 'static/js/bundle.js', - // There are also additional JS chunk files if you use code splitting. - chunkFilename: 'static/js/[name].chunk.js', - // This is the URL that app is served from. We use "/" in development. - publicPath: publicPath, - // Point sourcemap entries to original disk location (format as URL on Windows) - devtoolModuleFilenameTemplate: info => - path.resolve(info.absoluteResourcePath).replace(/\\/g, '/'), - }, - resolve: { - // This allows you to set a fallback for where Webpack should look for modules. - // We placed these paths second because we want `node_modules` to "win" - // if there are any conflicts. This matches Node resolution mechanism. - // https://github.com/facebookincubator/create-react-app/issues/253 - modules: ['node_modules', paths.appNodeModules].concat( - // It is guaranteed to exist because we tweak it in `env.js` - process.env.NODE_PATH.split(path.delimiter).filter(Boolean) - ), - // These are the reasonable defaults supported by the Node ecosystem. - // We also include JSX as a common component filename extension to support - // some tools, although we do not recommend using it, see: - // https://github.com/facebookincubator/create-react-app/issues/290 - // `web` extension prefixes have been added for better support - // for React Native Web. - extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx'], - alias: { - - "educoder": __dirname + "/../src/common/educoder.js", - // Support React Native Web - // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ - 'react-native': 'react-native-web', - }, - plugins: [ - // Prevents users from importing files from outside of src/ (or node_modules/). - // This often causes confusion because we only process files within src/ with babel. - // To fix this, we prevent you from importing files out of src/ -- if you'd like to, - // please link the files into your node_modules/ and let module-resolution kick in. - // Make sure your source files are compiled, as they will not be processed in any way. - new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]), - // MonacoEditor - // https://github.com/Microsoft/monaco-editor/blob/master/docs/integrate-esm.md - // https://github.com/Microsoft/monaco-editor-webpack-plugin/issues/56 - // new MonacoWebpackPlugin(), - ], - }, - module: { - strictExportPresence: true, - rules: [ - // TODO: Disable require.ensure as it's not a standard language feature. - // We are waiting for https://github.com/facebookincubator/create-react-app/issues/2176. - // { parser: { requireEnsure: false } }, - - // First, run the linter. - // It's important to do this before Babel processes the JS. - // { - // test: /\.(js|jsx|mjs)$/, - // enforce: 'pre', - // use: [ - // { - // options: { - // formatter: eslintFormatter, - // eslintPath: require.resolve('eslint'), - // - // }, - // loader: require.resolve('eslint-loader'), - // }, - // ], - // include: paths.appSrc, - // }, - { - // "oneOf" will traverse all following loaders until one will - // match the requirements. When no loader matches it will fall - // back to the "file" loader at the end of the loader list. - oneOf: [ - // "url" loader works like "file" loader except that it embeds assets - // smaller than specified limit in bytes as data URLs to avoid requests. - // A missing `test` is equivalent to a match. - { - test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], - loader: require.resolve('url-loader'), - options: { - limit: 10000, - name: 'static/media/[name].[hash:8].[ext]', - }, - }, - // Process JS with Babel. - { - test: /\.(js|jsx|mjs)$/, - include: paths.appSrc, - loader: require.resolve('babel-loader'), - options: { - - // This is a feature of `babel-loader` for webpack (not Babel itself). - // It enables caching results in ./node_modules/.cache/babel-loader/ - // directory for faster rebuilds. - cacheDirectory: true, - }, - }, - // "postcss" loader applies autoprefixer to our CSS. - // "css" loader resolves paths in CSS and adds assets as dependencies. - // "style" loader turns CSS into JS modules that inject