浏览代码

init framework

tags/2.0.0
Caven Chen 4 年前
父节点
当前提交
9f1c51e8b7
共有 6 个文件被更改,包括 312 次插入0 次删除
  1. 59
    0
      build/common.js
  2. 91
    0
      build/webpack.base.conf.js
  3. 6
    0
      build/webpack.chart.conf.js
  4. 67
    0
      build/webpack.core.conf.js
  5. 0
    0
      build/webpack.mapv.conf.js
  6. 89
    0
      build/webpack.sdk.conf.js

+ 59
- 0
build/common.js 查看文件

@@ -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'
}
]
}

+ 91
- 0
build/webpack.base.conf.js 查看文件

@@ -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
}
}

+ 6
- 0
build/webpack.chart.conf.js 查看文件

@@ -0,0 +1,6 @@
/**
* @Author: Caven
* @Date: 2021-03-14 00:41:29
*/

'use strict'

+ 67
- 0
build/webpack.core.conf.js 查看文件

@@ -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
build/webpack.mapv.conf.js 查看文件


+ 89
- 0
build/webpack.sdk.conf.js 查看文件

@@ -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
}
}

正在加载...
取消
保存