| @@ -0,0 +1,59 @@ | |||
| /** | |||
| * @Author: Caven | |||
| * @Date: 2021-03-13 12:09:44 | |||
| */ | |||
| 'use strict' | |||
| const MiniCssExtractPlugin = require('mini-css-extract-plugin') | |||
| module.exports = { | |||
| rules: [ | |||
| { | |||
| test: /\.js$/, | |||
| exclude: /node_modules/, | |||
| loader: 'babel-loader', | |||
| options: { | |||
| presets: ['@babel/preset-env'], | |||
| plugins: ['@babel/transform-runtime'], | |||
| compact: false, | |||
| ignore: ['checkTree'] | |||
| } | |||
| }, | |||
| { | |||
| test: /\.css$/, | |||
| use: [ | |||
| MiniCssExtractPlugin.loader, | |||
| { | |||
| loader: 'css-loader' | |||
| }, | |||
| { | |||
| loader: 'sass-loader' | |||
| } | |||
| ] | |||
| }, | |||
| { | |||
| test: /\.scss$/, | |||
| use: [ | |||
| MiniCssExtractPlugin.loader, | |||
| { | |||
| loader: 'css-loader' | |||
| }, | |||
| { | |||
| loader: 'sass-loader' | |||
| } | |||
| ] | |||
| }, | |||
| { | |||
| test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, | |||
| loader: 'url-loader', | |||
| options: { | |||
| limit: 20000 | |||
| } | |||
| }, | |||
| { | |||
| test: /\.glsl$/, | |||
| loader: 'webpack-glsl-loader' | |||
| } | |||
| ] | |||
| } | |||
| @@ -0,0 +1,91 @@ | |||
| /** | |||
| * @Author: Caven | |||
| * @Date: 2021-03-13 16:52:10 | |||
| */ | |||
| 'use strict' | |||
| const path = require('path') | |||
| const webpack = require('webpack') | |||
| const packageInfo = require('../package.json') | |||
| const CopyWebpackPlugin = require('copy-webpack-plugin') | |||
| const cesiumBuild = '../node_modules/cesium/Build/Cesium' | |||
| const common = require('./common') | |||
| let cesiumCopyPlugin = [ | |||
| new CopyWebpackPlugin([ | |||
| { | |||
| from: path.resolve(__dirname, cesiumBuild, 'Assets'), | |||
| to: 'resources/Assets' | |||
| }, | |||
| { | |||
| from: path.resolve(__dirname, cesiumBuild, 'Workers'), | |||
| to: 'resources/Workers' | |||
| }, | |||
| { | |||
| from: path.resolve(__dirname, cesiumBuild, 'ThirdParty'), | |||
| to: 'resources/ThirdParty' | |||
| } | |||
| ]) | |||
| ] | |||
| function getTime() { | |||
| let now = new Date() | |||
| let m = now.getMonth() + 1 | |||
| m = m < 10 ? '0' + m : m | |||
| let d = now.getDate() | |||
| d = d < 10 ? '0' + d : d | |||
| return `${now.getFullYear()}-${m}-${d}` | |||
| } | |||
| module.exports = env => { | |||
| const IS_PROD = (env && env.production) || false | |||
| const publicPath = IS_PROD ? '/' : '/' | |||
| let plugins = [ | |||
| ...cesiumCopyPlugin, | |||
| new webpack.DefinePlugin({ | |||
| CESIUM_BASE_URL: JSON.stringify('./libs/dc-sdk/resources/'), | |||
| __VERSION__: JSON.stringify(packageInfo.version), | |||
| __TIME__: JSON.stringify(getTime()), | |||
| __AUTHOR__: JSON.stringify(packageInfo.author), | |||
| __REPOSITORY__: JSON.stringify(packageInfo.repository), | |||
| __HOME_PAGE__: JSON.stringify(packageInfo.homepage) | |||
| }) | |||
| ] | |||
| if (IS_PROD) { | |||
| plugins.push(new webpack.NoEmitOnErrorsPlugin()) | |||
| } | |||
| return { | |||
| entry: { | |||
| 'dc.base': [path.resolve(__dirname, '..', 'packages/base/index.js')] | |||
| }, | |||
| devtool: IS_PROD ? false : 'cheap-module-eval-source-map', | |||
| output: { | |||
| filename: IS_PROD ? '[name].min.js' : '[name].js', | |||
| path: path.resolve(__dirname, '..', 'packages/base/dist'), | |||
| publicPath: publicPath, | |||
| library: 'DC', | |||
| libraryExport: 'default', | |||
| libraryTarget: 'umd', | |||
| umdNamedDefine: true | |||
| }, | |||
| amd: { | |||
| toUrlUndefined: true | |||
| }, | |||
| node: { | |||
| fs: 'empty' | |||
| }, | |||
| module: { | |||
| unknownContextCritical: false, | |||
| rules: common.rules | |||
| }, | |||
| resolve: { | |||
| extensions: ['.js', '.json', '.css'], | |||
| alias: { | |||
| '@dc-modules': path.resolve(__dirname, '..', 'modules'), | |||
| cesium: path.resolve(__dirname, cesiumBuild) | |||
| } | |||
| }, | |||
| plugins | |||
| } | |||
| } | |||
| @@ -0,0 +1,6 @@ | |||
| /** | |||
| * @Author: Caven | |||
| * @Date: 2021-03-14 00:41:29 | |||
| */ | |||
| 'use strict' | |||
| @@ -0,0 +1,67 @@ | |||
| /** | |||
| * @Author: Caven | |||
| * @Date: 2021-03-13 16:52:00 | |||
| */ | |||
| 'use strict' | |||
| const path = require('path') | |||
| const webpack = require('webpack') | |||
| const MiniCssExtractPlugin = require('mini-css-extract-plugin') | |||
| const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin') | |||
| const JavaScriptObfuscator = require('webpack-obfuscator') | |||
| const common = require('./common') | |||
| const cesiumBuild = '../node_modules/cesium/Build/Cesium' | |||
| module.exports = env => { | |||
| const IS_PROD = (env && env.production) || false | |||
| const publicPath = IS_PROD ? '/' : '/' | |||
| let plugins = [ | |||
| new MiniCssExtractPlugin({ | |||
| filename: IS_PROD ? '[name].min.css' : '[name].css', | |||
| allChunks: true | |||
| }) | |||
| ] | |||
| if (IS_PROD) { | |||
| plugins.push(new OptimizeCssAssetsPlugin()) | |||
| plugins.push(new webpack.NoEmitOnErrorsPlugin()) | |||
| plugins.push( | |||
| new JavaScriptObfuscator( | |||
| { | |||
| rotateStringArray: true | |||
| }, | |||
| [] | |||
| ) | |||
| ) | |||
| } | |||
| return { | |||
| entry: { | |||
| 'dc.core': [ | |||
| path.resolve(__dirname, '..', 'packages/core/index.js'), | |||
| path.resolve(__dirname, '..', 'modules/themes/index.js') | |||
| ] | |||
| }, | |||
| devtool: IS_PROD ? false : 'cheap-module-eval-source-map', | |||
| output: { | |||
| filename: IS_PROD ? '[name].min.js' : '[name].js', | |||
| path: path.resolve(__dirname, '..', 'packages/core/dist'), | |||
| publicPath: publicPath, | |||
| library: 'DcCore', | |||
| libraryTarget: 'umd', | |||
| umdNamedDefine: true | |||
| }, | |||
| module: { | |||
| unknownContextCritical: false, | |||
| rules: common.rules | |||
| }, | |||
| resolve: { | |||
| extensions: ['.js', '.json', '.css'], | |||
| alias: { | |||
| '@dc-modules': path.resolve(__dirname, '..', 'modules'), | |||
| cesium: path.resolve(__dirname, cesiumBuild) | |||
| } | |||
| }, | |||
| plugins | |||
| } | |||
| } | |||
| @@ -0,0 +1,89 @@ | |||
| /** | |||
| * @Author: Caven | |||
| * @Date: 2021-03-14 00:42:08 | |||
| */ | |||
| const path = require('path') | |||
| const webpack = require('webpack') | |||
| const packageInfo = require('../package.json') | |||
| const CopyWebpackPlugin = require('copy-webpack-plugin') | |||
| const cesiumBuild = '../node_modules/cesium/Build/Cesium' | |||
| const common = require('./common') | |||
| let cesiumCopyPlugin = [ | |||
| new CopyWebpackPlugin([ | |||
| { | |||
| from: path.resolve(__dirname, cesiumBuild, 'Assets'), | |||
| to: 'resources/Assets' | |||
| }, | |||
| { | |||
| from: path.resolve(__dirname, cesiumBuild, 'Workers'), | |||
| to: 'resources/Workers' | |||
| }, | |||
| { | |||
| from: path.resolve(__dirname, cesiumBuild, 'ThirdParty'), | |||
| to: 'resources/ThirdParty' | |||
| } | |||
| ]) | |||
| ] | |||
| function getTime() { | |||
| let now = new Date() | |||
| let m = now.getMonth() + 1 | |||
| m = m < 10 ? '0' + m : m | |||
| let d = now.getDate() | |||
| d = d < 10 ? '0' + d : d | |||
| return `${now.getFullYear()}-${m}-${d}` | |||
| } | |||
| module.exports = env => { | |||
| const IS_PROD = (env && env.production) || false | |||
| const publicPath = IS_PROD ? '/' : '/' | |||
| let plugins = [ | |||
| ...cesiumCopyPlugin, | |||
| new webpack.DefinePlugin({ | |||
| CESIUM_BASE_URL: JSON.stringify('./libs/dc-sdk/resources/'), | |||
| __VERSION__: JSON.stringify(packageInfo.version), | |||
| __TIME__: JSON.stringify(getTime()), | |||
| __AUTHOR__: JSON.stringify(packageInfo.author), | |||
| __REPOSITORY__: JSON.stringify(packageInfo.repository), | |||
| __HOME_PAGE__: JSON.stringify(packageInfo.homepage) | |||
| }) | |||
| ] | |||
| if (IS_PROD) { | |||
| plugins.push(new webpack.NoEmitOnErrorsPlugin()) | |||
| } | |||
| return { | |||
| entry: { | |||
| 'dc.base': [path.resolve(__dirname, '..', 'packages/base/index.js')] | |||
| }, | |||
| devtool: IS_PROD ? false : 'cheap-module-eval-source-map', | |||
| output: { | |||
| filename: IS_PROD ? '[name].min.js' : '[name].js', | |||
| path: path.resolve(__dirname, '..', 'packages/base/dist'), | |||
| publicPath: publicPath, | |||
| library: 'DC', | |||
| libraryExport: 'default', | |||
| libraryTarget: 'umd', | |||
| umdNamedDefine: true | |||
| }, | |||
| amd: { | |||
| toUrlUndefined: true | |||
| }, | |||
| node: { | |||
| fs: 'empty' | |||
| }, | |||
| module: { | |||
| unknownContextCritical: false, | |||
| rules: common.rules | |||
| }, | |||
| resolve: { | |||
| extensions: ['.js', '.json', '.css'], | |||
| alias: { | |||
| '@dc-modules': path.resolve(__dirname, '..', 'modules'), | |||
| cesium: path.resolve(__dirname, cesiumBuild) | |||
| } | |||
| }, | |||
| plugins | |||
| } | |||
| } | |||