分布式调度框架。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
4.3 KiB

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const path = require('path')
const webpack = require('webpack')
const merge = require('webpack-merge')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const { baseConfig } = require('./config')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin')
const resolve = dir =>
path.resolve(__dirname, '..', dir)
const config = merge.smart(baseConfig, {
devtool: 'source-map',
output: {
filename: 'js/[name].[chunkhash:7].js'
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
hotReload: false // Open hot overload
}
},
{
test: /\.css$/,
loader: ExtractTextPlugin.extract({
use: [
'css-loader',
{
loader: 'postcss-loader',
options: {
plugins: (loader) => [
require('autoprefixer')({
overrideBrowserslist: [
"Android 4.1",
"iOS 7.1",
"Chrome > 31",
"ff > 31",
"ie >= 8"
]
}),
require('cssnano')
]
}
}
],
fallback: ['vue-style-loader']
})
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract({
use: [
'css-loader',
'sass-loader',
{
loader: 'postcss-loader',
options: {
plugins: (loader) => [
require('autoprefixer')({
overrideBrowserslist: [
"Android 4.1",
"iOS 7.1",
"Chrome > 31",
"ff > 31",
"ie >= 8"
]
}),
require('cssnano')
]
}
}
],
fallback: ['vue-style-loader']
})
}
]
},
plugins: [
new ExtractTextPlugin({ filename: 'css/[name].[contenthash:7].css', allChunks: true }),
new webpack.optimize.CommonsChunkPlugin({ name: 'common', filename: 'js/[name].[hash:7].js' }),
new webpack.optimize.OccurrenceOrderPlugin(),
new OptimizeCssAssetsPlugin({
assetNameRegExp: /\.css$/g,
cssProcessor: require('cssnano'),
cssProcessorOptions: { discardComments: { removeAll: true } },
canPrint: true
}),
new UglifyJSPlugin({
parallel: true,
sourceMap: true,
uglifyOptions: {
compress: {
Daily optimization (#837) * package * 修改工作流实例页面状态为运行时,禁止删除,删除package.json包里面的babel-runtime和jasmine-core * bugfix-user-specified queue takes precedence over tenant queue (#769) Solve the problem that the user queue setting does not take effect * update markdown docs which can not display images normally (#806) * issue#728 (#746) The mailSender in PasswordAuthentication() and setFrom() may not be the same in actual use, and it's best to set it up separately. please add a example about this. * install-escheduler-ui.sh,monitor_server.py and install.sh scripts comment change to english and install-escheduler-ui.sh use escheduler change to dolphinscheduler (#812) * service start exception modify * master,worker start modify * .env update * install-escheduler-ui.sh,monitor_server.py and install.sh scripts comment change to english and install-escheduler-ui.sh use escheduler change to dolphinscheduler * scripts name standardization (#813) * service start exception modify * master,worker start modify * .env update * install-escheduler-ui.sh,monitor_server.py and install.sh scripts comment change to english and install-escheduler-ui.sh use escheduler change to dolphinscheduler * scripts name standardization * [BUG][#731]repair swagger annotation,interface path:/escheduler/projects/{projectName}/process/batch-delete and /escheduler/projects/{projectName}/process/delete (#764) * 增加工作流导出导入功能,前端定时器表达式的秒和分钟的默认值从*修改成0 * 修改工作流导出导入功能由excel改为json减少依赖 * [BUG][#731]repair swagger annotation ,interface path:/escheduler/projects/{projectName}/process/batch-delete and /escheduler/projects/{projectName}/process/delete * [BUG][#771] The edit timer did not assign the original data * [FEATURE][#236] Cross-project dependency * [FEATURE][#236] Cross-project dependency(增加跨项目依赖) * misspell words (#817) * (Docs): Fixed some typo errors (#811) * Update EasyScheduler Proposal.md * Update frontend-deployment.md * Update frontend-development.md * Update 前端开发文档.md * Update system-manual.md * Update HttpClientTest.java * Update 系统使用手册.md * fix singleton with volatile (#818) * Replace StringBuffer with StringBuilder inside the method (#816) * flink task support(flink 任务支持) (#711) * flink任务支持 * flink任务支持 * Update zh_CN.js * Update FlinkArgsUtils.java * Update .escheduler_env.sh * 1.Delete the page section console.log; 2.Change project name; 3.Production configuration packaging clears console.log
5 years ago
warnings: false,
drop_debugger: true,
drop_console: true,
pure_funcs: ['console.log']// remove console
},
comments: function (n, c) {
/*! IMPORTANT: Please preserve 3rd-party library license info, inspired from @allex/amd-build-worker/config/jsplumb.js */
var text = c.value, type = c.type
if (type === 'comment2') {
return /^!|@preserve|@license|@cc_on|MIT/i.test(text)
}
}
}
}),
new CopyWebpackPlugin([
{
from: resolve('src/combo'),
to: resolve('dist/combo')
},
{
from: resolve('src/lib'),
to: resolve('dist/lib')
},
{
from: resolve('src/images'),
to: resolve('dist/images')
},
]),
]
})
module.exports = config