test
This commit is contained in:
parent
2ab3da1e09
commit
ad20dcf8ea
17
.babelrc
17
.babelrc
|
@ -2,9 +2,20 @@
|
|||
"presets": [
|
||||
"env",
|
||||
"react",
|
||||
"stage-2"
|
||||
"stage-2",
|
||||
"es2015"
|
||||
],
|
||||
"plugins": [[
|
||||
"plugins": [["antd", {
|
||||
"libraryDirectory": "lib",
|
||||
"libraryName": "antd"
|
||||
}],[
|
||||
"transform-imports",
|
||||
{
|
||||
"libraryName": "antd",
|
||||
"libraryDirectory": "lib",
|
||||
"camel2KebabCase": false
|
||||
}
|
||||
],[
|
||||
"transform-runtime",
|
||||
{
|
||||
"helpers": false,
|
||||
|
@ -12,5 +23,5 @@
|
|||
"regenerator": true,
|
||||
"moduleName": "babel-runtime"
|
||||
}
|
||||
],["transform-decorators-legacy"]]
|
||||
],["transform-decorators-legacy"], ["syntax-dynamic-import"], ["transform-class-properties"]]
|
||||
}
|
|
@ -47,6 +47,7 @@ module.exports = {
|
|||
appIndexJs: resolveApp('src/index.js'),
|
||||
appPackageJson: resolveApp('package.json'),
|
||||
appSrc: resolveApp('src'),
|
||||
serverSrc: resolveApp('server'),
|
||||
yarnLockFile: resolveApp('yarn.lock'),
|
||||
testsSetup: resolveApp('src/setupTests.js'),
|
||||
appNodeModules: resolveApp('node_modules'),
|
||||
|
|
|
@ -1,5 +1,25 @@
|
|||
const autoprefixer = require("autoprefixer");
|
||||
const path = require("path");
|
||||
const nodeExternals = require("webpack-node-externals");
|
||||
const webpack = require("webpack");
|
||||
const HtmlWebpackPlugin = require("html-webpack-plugin");
|
||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
||||
const ManifestPlugin = require("webpack-manifest-plugin");
|
||||
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 MonacoWebpackPlugin = require("monaco-editor-webpack-plugin");
|
||||
const TerserJSPlugin = require("terser-webpack-plugin");
|
||||
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
|
||||
const TerserWebpackPlugin = require('terser-webpack-plugin');
|
||||
const paths = require("./paths");
|
||||
const getClientEnvironment = require("./env");
|
||||
|
||||
let publicPath = "/react/buildserver/";
|
||||
// const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false";
|
||||
const shouldUseSourceMap = true;
|
||||
const env = getClientEnvironment(publicPath,'production.min');
|
||||
// const nodeExternals = require("webpack-node-externals");
|
||||
|
||||
const serverConfig = {
|
||||
target:"node", //由于输出代码的运行环境是node,源码中依赖的node原生模块没必要打包进去;为了不把nodejs内置模块打包进输出文件中,例如: fs net模块等;
|
||||
|
@ -9,20 +29,242 @@ const serverConfig = {
|
|||
filename:"bundle.js",
|
||||
path: path.resolve(__dirname,"../buildserver")
|
||||
},
|
||||
externals:[nodeExternals()], //为了不把node_modules目录下的第三方模块打包进输出文件中,因为nodejs默认会去node_modules目录下去寻找和使用第三方模块。
|
||||
module:{
|
||||
rules:[
|
||||
// externals:[nodeExternals()], //为了不把node_modules目录下的第三方模块打包进输出文件中,因为nodejs默认会去node_modules目录下去寻找和使用第三方模块。
|
||||
module: {
|
||||
strictExportPresence: true,
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
exclude: /node_modules/,
|
||||
loader: "babel-loader",
|
||||
test: /\.(js|jsx|mjs)$/,
|
||||
enforce: "pre",
|
||||
use: [
|
||||
{
|
||||
options: {
|
||||
formatter: eslintFormatter,
|
||||
eslintPath: require.resolve("eslint"),
|
||||
},
|
||||
loader: require.resolve("eslint-loader"),
|
||||
},
|
||||
],
|
||||
include: [paths.appSrc, paths.serverSrc],
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: ['style-loader', 'css-loader'],
|
||||
// "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 just like "file" loader but it also embeds
|
||||
// assets smaller than specified size as data URLs to avoid requests.
|
||||
{
|
||||
test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/],
|
||||
loader: require.resolve("url-loader"),
|
||||
options: {
|
||||
limit: 10000,
|
||||
name: "static/media/[name].[hash:8].[ext]",
|
||||
},
|
||||
},
|
||||
{
|
||||
test: /\.(js|jsx|mjs)$/,
|
||||
include: [paths.appSrc, paths.serverSrc],
|
||||
exclude: /node_modules/,
|
||||
loader: require.resolve("babel-loader"),
|
||||
options: {
|
||||
compact: true,
|
||||
plugins: [
|
||||
[
|
||||
"import",
|
||||
{
|
||||
libraryName: "antd",
|
||||
libraryDirectory: "es",
|
||||
style: true,
|
||||
},
|
||||
],
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
{
|
||||
loader: MiniCssExtractPlugin.loader,
|
||||
options: {
|
||||
publicPath,
|
||||
},
|
||||
},
|
||||
{
|
||||
loader: require.resolve("css-loader"),
|
||||
options: {
|
||||
importLoaders: 1,
|
||||
sourceMap: shouldUseSourceMap,
|
||||
},
|
||||
},
|
||||
{
|
||||
loader: require.resolve("postcss-loader"),
|
||||
options: {
|
||||
ident: "postcss",
|
||||
plugins: () => [
|
||||
require("postcss-flexbugs-fixes"),
|
||||
autoprefixer({
|
||||
browsers: [
|
||||
">1%",
|
||||
"last 4 versions",
|
||||
"Firefox ESR",
|
||||
"not ie < 9", // React doesn't support IE8 anyway
|
||||
],
|
||||
flexbox: "no-2009",
|
||||
}),
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
test: /\.scss$/,
|
||||
use: [
|
||||
{
|
||||
loader: MiniCssExtractPlugin.loader,
|
||||
options: {
|
||||
publicPath,
|
||||
},
|
||||
},
|
||||
{
|
||||
loader: require.resolve("css-loader"),
|
||||
options: {
|
||||
importLoaders: 1,
|
||||
sourceMap: shouldUseSourceMap,
|
||||
},
|
||||
},
|
||||
{
|
||||
loader: require.resolve("sass-loader"),
|
||||
},
|
||||
{
|
||||
loader: 'sass-resources-loader',
|
||||
options: {
|
||||
resources: ['src/global.scss']
|
||||
}
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
test: /\.less$/,
|
||||
use: [{
|
||||
loader: 'isomorphic-style-loader',
|
||||
}, {
|
||||
loader: 'css-loader', // translates CSS into CommonJS
|
||||
}, {
|
||||
loader: 'less-loader', // compiles Less to CSS
|
||||
options: {
|
||||
modifyVars: {
|
||||
'primary-color': '#466aff',
|
||||
'link-color': '#466aff',
|
||||
},
|
||||
javascriptEnabled: true,
|
||||
},
|
||||
}]
|
||||
},
|
||||
// "file" loader makes sure assets end up in the `build` folder.
|
||||
// When you `import` an asset, you get its filename.
|
||||
// This loader doesn't use a "test" so it will catch all modules
|
||||
// that fall through the other loaders.
|
||||
{
|
||||
loader: require.resolve("file-loader"),
|
||||
// Exclude `js` files to keep "css" loader working as it injects
|
||||
// it's runtime that would otherwise processed through "file" loader.
|
||||
// Also exclude `html` and `json` extensions so they get processed
|
||||
// by webpacks internal loaders.
|
||||
exclude: [/\.(js|jsx|mjs)$/, /\.html$/, /\.json$/],
|
||||
options: {
|
||||
name: "static/media/[name].[contenthash:8].[ext]",
|
||||
},
|
||||
},
|
||||
// ** STOP ** Are you adding a new loader?
|
||||
// Make sure to add the new loader(s) before the "file" loader.
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
plugins: [
|
||||
// Makes some environment variables available in index.html.
|
||||
// The public URL is available as %PUBLIC_URL% in index.html, e.g.:
|
||||
// <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
|
||||
// In production, it will be an empty string unless you specify "homepage"
|
||||
// in `package.json`, in which case it will be the pathname of that URL.
|
||||
// Generates an `index.html` file with the <script> injected.
|
||||
new HtmlWebpackPlugin({
|
||||
inject: false,
|
||||
template: paths.appHtml,
|
||||
minify: {
|
||||
removeComments: true,
|
||||
collapseWhitespace: true,
|
||||
removeRedundantAttributes: true,
|
||||
useShortDoctype: true,
|
||||
removeEmptyAttributes: true,
|
||||
removeStyleLinkTypeAttributes: true,
|
||||
keepClosingSlash: true,
|
||||
minifyJS: true,
|
||||
minifyCSS: true,
|
||||
minifyURLs: true,
|
||||
},
|
||||
}),
|
||||
new InterpolateHtmlPlugin(HtmlWebpackPlugin, env.raw),
|
||||
// Makes some environment variables available to the JS code, for example:
|
||||
// if (process.env.NODE_ENV === 'production') { ... }. See `./env.js`.
|
||||
// It is absolutely essential that NODE_ENV was set to production here.
|
||||
// Otherwise React will be compiled in the very slow development mode.
|
||||
new webpack.DefinePlugin(env.stringified),
|
||||
|
||||
new MiniCssExtractPlugin({
|
||||
filename: "static/css/[name].[contenthash:8].css",
|
||||
chunkFilename: "static/css/[name].[contenthash:8].chunk.css",
|
||||
}),
|
||||
// Generate a manifest file which contains a mapping of all asset filenames
|
||||
// to their corresponding output file so that tools can pick it up without
|
||||
// having to parse `index.html`.
|
||||
new ManifestPlugin({
|
||||
fileName: "asset-manifest.json",
|
||||
}),
|
||||
// Generate a service worker script that will precache, and keep up to date,
|
||||
// the HTML & assets that are part of the Webpack build.
|
||||
// new SWPrecacheWebpackPlugin({
|
||||
// // By default, a cache-busting query parameter is appended to requests
|
||||
// // used to populate the caches, to ensure the responses are fresh.
|
||||
// // If a URL is already hashed by Webpack, then there is no concern
|
||||
// // about it being stale, and the cache-busting can be skipped.
|
||||
// dontCacheBustUrlsMatching: /\.\w{8}\./,
|
||||
// filename: "service-worker.js",
|
||||
// logger(message) {
|
||||
// if (message.indexOf("Total precache size is") === 0) {
|
||||
// // This message occurs for every build and is a bit too noisy.
|
||||
// return;
|
||||
// }
|
||||
// if (message.indexOf("Skipping static resource") === 0) {
|
||||
// // This message obscures real errors so we ignore it.
|
||||
// // https://github.com/facebookincubator/create-react-app/issues/2612
|
||||
// return;
|
||||
// }
|
||||
// // console.log(message);
|
||||
// },
|
||||
// minify: true,
|
||||
// // For unknown URLs, fallback to the index page
|
||||
// navigateFallback: publicUrl + "/index.html",
|
||||
// // Ignores URLs starting from /__ (useful for Firebase):
|
||||
// // https://github.com/facebookincubator/create-react-app/issues/2237#issuecomment-302693219
|
||||
// navigateFallbackWhitelist: [/^(?!\/__).*/],
|
||||
// // Don't precache sourcemaps (they're large) and build asset manifest:f
|
||||
// staticFileGlobsIgnorePatterns: [/\.map$/, /asset-manifest\.json$/],
|
||||
// }),
|
||||
// Moment.js is an extremely popular library that bundles large locale files
|
||||
// by default due to how Webpack interprets its code. This is a practical
|
||||
// solution that requires the user to opt into importing specific locales.
|
||||
// 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 MonacoWebpackPlugin({
|
||||
features: ["coreCommands", "find"],
|
||||
languages: ['plaintext','apex', 'azcli', 'bat', 'clojure', 'coffee', 'cpp', 'csharp', 'csp', 'css', 'dockerfile', 'fsharp', 'go', 'handlebars', 'html', 'ini', 'java', 'javascript', 'json', 'less', 'lua', 'markdown', 'msdax', 'mysql', 'objective', 'perl', 'pgsql', 'php', 'postiats', 'powerquery', 'powershell', 'pug', 'python', 'r', 'razor', 'redis', 'redshift', 'ruby', 'rust', 'sb', 'scheme', 'scss', 'shell', 'solidity', 'sql', 'st', 'swift', 'typescript', 'vb', 'xml', 'yaml']
|
||||
}),
|
||||
new webpack.NamedChunksPlugin(),
|
||||
new webpack.HashedModuleIdsPlugin(),
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = serverConfig;
|
||||
|
|
|
@ -1718,7 +1718,7 @@
|
|||
},
|
||||
"babel-cli": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/babel-cli/-/babel-cli-6.26.0.tgz",
|
||||
"integrity": "sha512-wau+BDtQfuSBGQ9PzzFL3REvR9Sxnd4LKwtcHAiPjhugA7K/80vpHXafj+O5bAqJOuSefjOx5ZJnNSR2J1Qw6Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -1741,7 +1741,7 @@
|
|||
"dependencies": {
|
||||
"chokidar": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-1.7.0.tgz",
|
||||
"integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
|
@ -1759,7 +1759,7 @@
|
|||
},
|
||||
"source-map": {
|
||||
"version": "0.5.7",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz",
|
||||
"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -1784,7 +1784,7 @@
|
|||
},
|
||||
"babel-core": {
|
||||
"version": "6.26.3",
|
||||
"resolved": "http://173.15.15.82:8081/repository/npm-all/babel-core/-/babel-core-6.26.3.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/babel-core/-/babel-core-6.26.3.tgz",
|
||||
"integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
|
||||
"requires": {
|
||||
"babel-code-frame": "^6.26.0",
|
||||
|
@ -1815,8 +1815,8 @@
|
|||
},
|
||||
"source-map": {
|
||||
"version": "0.5.7",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
|
||||
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz",
|
||||
"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -2053,6 +2053,11 @@
|
|||
"babel-runtime": "^6.22.0"
|
||||
}
|
||||
},
|
||||
"babel-plugin-antd": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmmirror.com/babel-plugin-antd/-/babel-plugin-antd-0.5.1.tgz",
|
||||
"integrity": "sha512-ypP7yH/m0qdCxa6VJIN86jLeC5jD6Rsp+uZM9+cfvzw8lD8nv30Ci31+APw4a1uecoiTkm/QQ/LC+KEOpn0r4Q=="
|
||||
},
|
||||
"babel-plugin-check-es2015-constants": {
|
||||
"version": "6.22.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
|
||||
|
@ -2192,7 +2197,7 @@
|
|||
},
|
||||
"babel-plugin-transform-class-properties": {
|
||||
"version": "6.24.1",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
|
||||
"integrity": "sha512-n4jtBA3OYBdvG5PRMKsMXJXHfLYw/ZOmtxCLOOwz6Ro5XlrColkStLnz1AS1L2yfPA9BKJ1ZNlmVCLjAL9DSIg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -2481,6 +2486,16 @@
|
|||
"babel-runtime": "^6.22.0"
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-imports": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/babel-plugin-transform-imports/-/babel-plugin-transform-imports-2.0.0.tgz",
|
||||
"integrity": "sha512-65ewumYJ85QiXdcB/jmiU0y0jg6eL6CdnDqQAqQ8JMOKh1E52VPG3NJzbVKWcgovUR5GBH8IWpCXQ7I8Q3wjgw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.4",
|
||||
"is-valid-path": "^0.1.1"
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-object-rest-spread": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
|
||||
|
@ -8209,7 +8224,7 @@
|
|||
},
|
||||
"fs-readdir-recursive": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "http://173.15.15.82:8081/repository/npm-all/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
|
||||
"integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -10045,6 +10060,15 @@
|
|||
"is-path-inside": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"is-invalid-path": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
|
||||
"integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-glob": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"is-mobile": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "http://173.15.15.82:8081/repository/npm-all/is-mobile/-/is-mobile-2.2.2.tgz",
|
||||
|
@ -10230,6 +10254,15 @@
|
|||
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
|
||||
"integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q=="
|
||||
},
|
||||
"is-valid-path": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/is-valid-path/-/is-valid-path-0.1.1.tgz",
|
||||
"integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-invalid-path": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"is-weakref": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
|
||||
|
@ -12512,7 +12545,7 @@
|
|||
},
|
||||
"output-file-sync": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/output-file-sync/-/output-file-sync-1.1.2.tgz",
|
||||
"integrity": "sha512-uQLlclru4xpCi+tfs80l3QF24KL81X57ELNMy7W/dox+JTtxUf1bLyQ8968fFCmSqqbokjW0kn+WBIlO+rSkNg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -19499,7 +19532,7 @@
|
|||
},
|
||||
"user-home": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/user-home/-/user-home-1.1.1.tgz",
|
||||
"integrity": "sha512-aggiKfEEubv3UwRNqTzLInZpAOmKzwdHqEBmW/hBA/mt99eg+b4VrX6i+IRLxU8+WJYfa33rGwRseg4eElUgsQ==",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -19559,7 +19592,7 @@
|
|||
},
|
||||
"v8flags": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/v8flags/-/v8flags-2.1.1.tgz",
|
||||
"integrity": "sha512-SKfhk/LlaXzvtowJabLZwD4K6SGRYeoxA7KJeISlUMAB/NT4CBkZjMq3WceX2Ckm4llwqYVo8TICgsDYCBU2tA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
|
27
package.json
27
package.json
|
@ -13,6 +13,7 @@
|
|||
"array-flatten": "^2.1.2",
|
||||
"autoprefixer": "7.1.6",
|
||||
"axios": "^0.24.0",
|
||||
"babel-plugin-antd": "^0.5.1",
|
||||
"bizcharts": "^3.5.8",
|
||||
"bundle-loader": "^0.5.6",
|
||||
"chalk": "1.1.3",
|
||||
|
@ -124,8 +125,8 @@
|
|||
"ana": "webpack-bundle-analyzer ./stats.json",
|
||||
"analyze": "npm run build -- --stats && webpack-bundle-analyzer build/bundle-stats.json",
|
||||
"analyz": "NODE_ENV=production npm_config_report=true npm run build",
|
||||
"server": "cross-env NODE_ENV=production nodemon --exec node \"./buildserver/bundle.js\" --watch config --watch server",
|
||||
"build:server": "webpack --config config/webpack.server.js"
|
||||
"server": "cross-env NODE_ENV=production nodemon --exec babel-node \"./buildserver/bundle.js\" --watch config --watch server",
|
||||
"build:server": "cross-env NODE_ENV=production webpack --config config/webpack.server.js"
|
||||
},
|
||||
"jest": {
|
||||
"collectCoverageFrom": [
|
||||
|
@ -161,24 +162,6 @@
|
|||
"node"
|
||||
]
|
||||
},
|
||||
"babel": {
|
||||
"presets": [
|
||||
"react",
|
||||
"react-app"
|
||||
],
|
||||
"plugins": [
|
||||
[
|
||||
"import",
|
||||
{
|
||||
"libraryName": "antd",
|
||||
"libraryDirectory": "lib",
|
||||
"style": "css"
|
||||
},
|
||||
"ant"
|
||||
],
|
||||
"syntax-dynamic-import"
|
||||
]
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "react-app"
|
||||
},
|
||||
|
@ -187,13 +170,15 @@
|
|||
"devDependencies": {
|
||||
"@babel/runtime": "7.0.0-beta.51",
|
||||
"babel-cli": "^6.26.0",
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-core": "^6.26.3",
|
||||
"babel-eslint": "7.2.3",
|
||||
"babel-jest": "20.0.3",
|
||||
"babel-loader": "7.1.2",
|
||||
"babel-plugin-import": "^1.13.0",
|
||||
"babel-plugin-syntax-dynamic-import": "^6.18.0",
|
||||
"babel-plugin-transform-class-properties": "^6.24.1",
|
||||
"babel-plugin-transform-decorators-legacy": "^1.3.5",
|
||||
"babel-plugin-transform-imports": "^2.0.0",
|
||||
"babel-plugin-transform-runtime": "^6.23.0",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
|
|
|
@ -8,4 +8,7 @@ app.get('*',function (req,res) {
|
|||
render(req,res);
|
||||
})
|
||||
|
||||
app.listen(3000);
|
||||
const port = 3000
|
||||
|
||||
console.log(`\n==> 🌎 Listening on port ${port}. Open up http://localhost:${port}/ in your browser.\n`)
|
||||
app.listen(port);
|
Loading…
Reference in New Issue