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