feat: init
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"presets": [
|
||||||
|
// env项是借助插件babel-preset-env,下面这个配置说的是babel对es6,es7,es8进行转码,并且设置amd,commonjs这样的模块化文件,不进行转码
|
||||||
|
["env", {
|
||||||
|
"modules": false,
|
||||||
|
"targets": {
|
||||||
|
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
// 下面这个是不同阶段出现的es语法,包含不同的转码插件
|
||||||
|
"stage-2"
|
||||||
|
],
|
||||||
|
// 下面这个选项是引用插件来处理代码的转换,transform-runtime用来处理全局函数和优化babel编译
|
||||||
|
"plugins": ["transform-vue-jsx", "transform-runtime"],
|
||||||
|
// 下面指的是在生成的文件中,不产生注释
|
||||||
|
"comments": false,
|
||||||
|
"env": {
|
||||||
|
// test 是提前设置的环境变量,如果没有设置BABEL_ENV则使用NODE_ENV,如果都没有设置默认就是development
|
||||||
|
"test": {
|
||||||
|
"presets": ["env", "stage-2"],
|
||||||
|
// instanbul是一个用来测试转码后代码的工具
|
||||||
|
"plugins": ["istanbul"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
|
@ -0,0 +1,15 @@
|
||||||
|
.DS_Store
|
||||||
|
node_modules/
|
||||||
|
/dist/
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
|
@ -0,0 +1,10 @@
|
||||||
|
// https://github.com/michael-ciniawsky/postcss-load-config
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
"plugins": {
|
||||||
|
"postcss-import": {},
|
||||||
|
"postcss-url": {},
|
||||||
|
// to edit target browsers: use "browserslist" field in package.json
|
||||||
|
"autoprefixer": {}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
# YXK
|
||||||
|
|
||||||
|
> 优信可互联网平台
|
||||||
|
|
||||||
|
## Build Setup
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
# install dependencies
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# serve with hot reload at localhost:8080
|
||||||
|
npm run dev
|
||||||
|
|
||||||
|
# build for production with minification
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# build for production and view the bundle analyzer report
|
||||||
|
npm run build --report
|
||||||
|
```
|
||||||
|
|
||||||
|
For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
|
|
@ -0,0 +1,5 @@
|
||||||
|
This is a Subversion repository; use the 'svnadmin' and 'svnlook'
|
||||||
|
tools to examine it. Do not add, delete, or modify files here
|
||||||
|
unless you know how to avoid corrupting the repository.
|
||||||
|
|
||||||
|
Visit http://subversion.apache.org/ for more information.
|
|
@ -0,0 +1,41 @@
|
||||||
|
'use strict'
|
||||||
|
require('./check-versions')()
|
||||||
|
|
||||||
|
process.env.NODE_ENV = 'production'
|
||||||
|
|
||||||
|
const ora = require('ora')
|
||||||
|
const rm = require('rimraf')
|
||||||
|
const path = require('path')
|
||||||
|
const chalk = require('chalk')
|
||||||
|
const webpack = require('webpack')
|
||||||
|
const config = require('../config/build')
|
||||||
|
const webpackConfig = require('./webpack.prod.conf')
|
||||||
|
|
||||||
|
const spinner = ora('building for production...')
|
||||||
|
spinner.start()
|
||||||
|
|
||||||
|
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
|
||||||
|
if (err) throw err
|
||||||
|
webpack(webpackConfig, (err, stats) => {
|
||||||
|
spinner.stop()
|
||||||
|
if (err) throw err
|
||||||
|
process.stdout.write(stats.toString({
|
||||||
|
colors: true,
|
||||||
|
modules: false,
|
||||||
|
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
|
||||||
|
chunks: false,
|
||||||
|
chunkModules: false
|
||||||
|
}) + '\n\n')
|
||||||
|
|
||||||
|
if (stats.hasErrors()) {
|
||||||
|
console.log(chalk.red(' Build failed with errors.\n'))
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(chalk.cyan(' Build complete.\n'))
|
||||||
|
console.log(chalk.yellow(
|
||||||
|
' Tip: built files are meant to be served over an HTTP server.\n' +
|
||||||
|
' Opening index.html over file:// won\'t work.\n'
|
||||||
|
))
|
||||||
|
})
|
||||||
|
})
|
|
@ -0,0 +1,54 @@
|
||||||
|
'use strict'
|
||||||
|
const chalk = require('chalk')
|
||||||
|
const semver = require('semver')
|
||||||
|
const packageConfig = require('../package.json')
|
||||||
|
const shell = require('shelljs')
|
||||||
|
|
||||||
|
function exec (cmd) {
|
||||||
|
return require('child_process').execSync(cmd).toString().trim()
|
||||||
|
}
|
||||||
|
|
||||||
|
const versionRequirements = [
|
||||||
|
{
|
||||||
|
name: 'node',
|
||||||
|
currentVersion: semver.clean(process.version),
|
||||||
|
versionRequirement: packageConfig.engines.node
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
if (shell.which('npm')) {
|
||||||
|
versionRequirements.push({
|
||||||
|
name: 'npm',
|
||||||
|
currentVersion: exec('npm --version'),
|
||||||
|
versionRequirement: packageConfig.engines.npm
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = function () {
|
||||||
|
const warnings = []
|
||||||
|
|
||||||
|
for (let i = 0; i < versionRequirements.length; i++) {
|
||||||
|
const mod = versionRequirements[i]
|
||||||
|
|
||||||
|
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
|
||||||
|
warnings.push(mod.name + ': ' +
|
||||||
|
chalk.red(mod.currentVersion) + ' should be ' +
|
||||||
|
chalk.green(mod.versionRequirement)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (warnings.length) {
|
||||||
|
console.log('')
|
||||||
|
console.log(chalk.yellow('To use this template, you must update following to modules:'))
|
||||||
|
console.log()
|
||||||
|
|
||||||
|
for (let i = 0; i < warnings.length; i++) {
|
||||||
|
const warning = warnings[i]
|
||||||
|
console.log(' ' + warning)
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log()
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 6.7 KiB |
|
@ -0,0 +1,101 @@
|
||||||
|
'use strict'
|
||||||
|
const path = require('path')
|
||||||
|
const config = require('../config')
|
||||||
|
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||||
|
const packageConfig = require('../package.json')
|
||||||
|
|
||||||
|
exports.assetsPath = function (_path) {
|
||||||
|
const assetsSubDirectory = process.env.NODE_ENV === 'production'
|
||||||
|
? config.build.assetsSubDirectory
|
||||||
|
: config.dev.assetsSubDirectory
|
||||||
|
|
||||||
|
return path.posix.join(assetsSubDirectory, _path)
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.cssLoaders = function (options) {
|
||||||
|
options = options || {}
|
||||||
|
|
||||||
|
const cssLoader = {
|
||||||
|
loader: 'css-loader',
|
||||||
|
options: {
|
||||||
|
sourceMap: options.sourceMap
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const postcssLoader = {
|
||||||
|
loader: 'postcss-loader',
|
||||||
|
options: {
|
||||||
|
sourceMap: options.sourceMap
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate loader string to be used with extract text plugin
|
||||||
|
function generateLoaders (loader, loaderOptions) {
|
||||||
|
const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
|
||||||
|
|
||||||
|
if (loader) {
|
||||||
|
loaders.push({
|
||||||
|
loader: loader + '-loader',
|
||||||
|
options: Object.assign({}, loaderOptions, {
|
||||||
|
sourceMap: options.sourceMap
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extract CSS when that option is specified
|
||||||
|
// (which is the case during production build)
|
||||||
|
if (options.extract) {
|
||||||
|
return ExtractTextPlugin.extract({
|
||||||
|
use: loaders,
|
||||||
|
fallback: 'vue-style-loader'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
return ['vue-style-loader'].concat(loaders)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
|
||||||
|
return {
|
||||||
|
css: generateLoaders(),
|
||||||
|
postcss: generateLoaders(),
|
||||||
|
less: generateLoaders('less'),
|
||||||
|
sass: generateLoaders('sass', { indentedSyntax: true }),
|
||||||
|
scss: generateLoaders('sass'),
|
||||||
|
stylus: generateLoaders('stylus'),
|
||||||
|
styl: generateLoaders('stylus')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate loaders for standalone style files (outside of .vue)
|
||||||
|
exports.styleLoaders = function (options) {
|
||||||
|
const output = []
|
||||||
|
const loaders = exports.cssLoaders(options)
|
||||||
|
|
||||||
|
for (const extension in loaders) {
|
||||||
|
const loader = loaders[extension]
|
||||||
|
output.push({
|
||||||
|
test: new RegExp('\\.' + extension + '$'),
|
||||||
|
use: loader
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return output
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.createNotifierCallback = () => {
|
||||||
|
const notifier = require('node-notifier')
|
||||||
|
|
||||||
|
return (severity, errors) => {
|
||||||
|
if (severity !== 'error') return
|
||||||
|
|
||||||
|
const error = errors[0]
|
||||||
|
const filename = error.file && error.file.split('!').pop()
|
||||||
|
|
||||||
|
notifier.notify({
|
||||||
|
title: packageConfig.name,
|
||||||
|
message: severity + ': ' + error.name,
|
||||||
|
subtitle: filename || '',
|
||||||
|
icon: path.join(__dirname, 'logo.png')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
'use strict'
|
||||||
|
const utils = require('./utils')
|
||||||
|
const config = require('../config')
|
||||||
|
const isProduction = process.env.NODE_ENV === 'production'
|
||||||
|
const sourceMapEnabled = isProduction
|
||||||
|
? config.build.productionSourceMap
|
||||||
|
: config.dev.cssSourceMap
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
loaders: utils.cssLoaders({
|
||||||
|
sourceMap: sourceMapEnabled,
|
||||||
|
extract: isProduction
|
||||||
|
}),
|
||||||
|
cssSourceMap: sourceMapEnabled,
|
||||||
|
cacheBusting: config.dev.cacheBusting,
|
||||||
|
transformToRequire: {
|
||||||
|
video: ['src', 'poster'],
|
||||||
|
source: 'src',
|
||||||
|
img: 'src',
|
||||||
|
image: 'xlink:href'
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,82 @@
|
||||||
|
'use strict'
|
||||||
|
const path = require('path')
|
||||||
|
const utils = require('./utils')
|
||||||
|
const config = require('../config')
|
||||||
|
const vueLoaderConfig = require('./vue-loader.conf')
|
||||||
|
|
||||||
|
function resolve (dir) {
|
||||||
|
return path.join(__dirname, '..', dir)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
context: path.resolve(__dirname, '../'),
|
||||||
|
entry: {
|
||||||
|
app: ["babel-polyfill", "./src/main.js"],
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
path: config.build.assetsRoot,
|
||||||
|
filename: '[name].js',
|
||||||
|
publicPath: process.env.NODE_ENV === 'production'
|
||||||
|
? config.build.assetsPublicPath
|
||||||
|
: config.dev.assetsPublicPath
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
extensions: ['.js', '.vue', '.json'],
|
||||||
|
alias: {
|
||||||
|
'vue$': 'vue/dist/vue.esm.js',
|
||||||
|
'@': resolve('src'),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
test: /\.vue$/,
|
||||||
|
loader: 'vue-loader',
|
||||||
|
options: vueLoaderConfig
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.js$/,
|
||||||
|
loader: 'babel-loader',
|
||||||
|
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client'), resolve('node_modules/ant-design-vue')]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
|
||||||
|
loader: 'url-loader',
|
||||||
|
options: {
|
||||||
|
limit: 10000,
|
||||||
|
name: utils.assetsPath('img/[name].[hash:7].[ext]')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
|
||||||
|
loader: 'url-loader',
|
||||||
|
options: {
|
||||||
|
limit: 10000,
|
||||||
|
name: utils.assetsPath('media/[name].[hash:7].[ext]')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
|
||||||
|
loader: 'url-loader',
|
||||||
|
options: {
|
||||||
|
limit: 10000,
|
||||||
|
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
node: {
|
||||||
|
// prevent webpack from injecting useless setImmediate polyfill because Vue
|
||||||
|
// source contains it (although only uses it if it's native).
|
||||||
|
setImmediate: false,
|
||||||
|
// prevent webpack from injecting mocks to Node native modules
|
||||||
|
// that does not make sense for the client
|
||||||
|
dgram: 'empty',
|
||||||
|
fs: 'empty',
|
||||||
|
net: 'empty',
|
||||||
|
tls: 'empty',
|
||||||
|
child_process: 'empty'
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
'use strict'
|
||||||
|
const utils = require('./utils')
|
||||||
|
const webpack = require('webpack')
|
||||||
|
const config = require('../config')
|
||||||
|
const merge = require('webpack-merge')
|
||||||
|
const path = require('path')
|
||||||
|
const baseWebpackConfig = require('./webpack.base.conf')
|
||||||
|
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
||||||
|
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||||
|
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
|
||||||
|
const portfinder = require('portfinder')
|
||||||
|
|
||||||
|
const HOST = process.env.HOST
|
||||||
|
const PORT = process.env.PORT && Number(process.env.PORT)
|
||||||
|
|
||||||
|
const devWebpackConfig = merge(baseWebpackConfig, {
|
||||||
|
module: {
|
||||||
|
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
|
||||||
|
},
|
||||||
|
// cheap-module-eval-source-map is faster for development
|
||||||
|
devtool: config.dev.devtool,
|
||||||
|
|
||||||
|
// these devServer options should be customized in /config/index.js
|
||||||
|
devServer: {
|
||||||
|
clientLogLevel: 'warning',
|
||||||
|
historyApiFallback: {
|
||||||
|
rewrites: [
|
||||||
|
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
hot: true,
|
||||||
|
contentBase: false, // since we use CopyWebpackPlugin.
|
||||||
|
compress: true,
|
||||||
|
host: HOST || config.dev.host,
|
||||||
|
port: PORT || config.dev.port,
|
||||||
|
open: config.dev.autoOpenBrowser,
|
||||||
|
overlay: config.dev.errorOverlay
|
||||||
|
? { warnings: false, errors: true }
|
||||||
|
: false,
|
||||||
|
publicPath: config.dev.assetsPublicPath,
|
||||||
|
proxy: config.dev.proxyTable,
|
||||||
|
quiet: true, // necessary for FriendlyErrorsPlugin
|
||||||
|
watchOptions: {
|
||||||
|
poll: config.dev.poll,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
new webpack.DefinePlugin({
|
||||||
|
'process.env': require('../config/dev.env')
|
||||||
|
}),
|
||||||
|
new webpack.HotModuleReplacementPlugin(),
|
||||||
|
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
|
||||||
|
new webpack.NoEmitOnErrorsPlugin(),
|
||||||
|
// https://github.com/ampedandwired/html-webpack-plugin
|
||||||
|
new HtmlWebpackPlugin({
|
||||||
|
filename: 'index.html',
|
||||||
|
template: 'index.html',
|
||||||
|
inject: true
|
||||||
|
}),
|
||||||
|
// copy custom static assets
|
||||||
|
new CopyWebpackPlugin([
|
||||||
|
{
|
||||||
|
from: path.resolve(__dirname, '../static'),
|
||||||
|
to: config.dev.assetsSubDirectory,
|
||||||
|
ignore: ['.*']
|
||||||
|
}
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
module.exports = new Promise((resolve, reject) => {
|
||||||
|
portfinder.basePort = process.env.PORT || config.dev.port
|
||||||
|
portfinder.getPort((err, port) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err)
|
||||||
|
} else {
|
||||||
|
// publish the new Port, necessary for e2e tests
|
||||||
|
process.env.PORT = port
|
||||||
|
// add port to devServer config
|
||||||
|
devWebpackConfig.devServer.port = port
|
||||||
|
|
||||||
|
// Add FriendlyErrorsPlugin
|
||||||
|
devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
|
||||||
|
compilationSuccessInfo: {
|
||||||
|
messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
|
||||||
|
},
|
||||||
|
onErrors: config.dev.notifyOnErrors
|
||||||
|
? utils.createNotifierCallback()
|
||||||
|
: undefined
|
||||||
|
}))
|
||||||
|
|
||||||
|
resolve(devWebpackConfig)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
|
@ -0,0 +1,145 @@
|
||||||
|
'use strict'
|
||||||
|
const path = require('path')
|
||||||
|
const utils = require('./utils')
|
||||||
|
const webpack = require('webpack')
|
||||||
|
const config = require('../config')
|
||||||
|
const merge = require('webpack-merge')
|
||||||
|
const baseWebpackConfig = require('./webpack.base.conf')
|
||||||
|
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
||||||
|
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||||
|
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||||
|
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
|
||||||
|
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
|
||||||
|
|
||||||
|
const env = require('../config/prod.env')
|
||||||
|
|
||||||
|
const webpackConfig = merge(baseWebpackConfig, {
|
||||||
|
module: {
|
||||||
|
rules: utils.styleLoaders({
|
||||||
|
sourceMap: config.build.productionSourceMap,
|
||||||
|
extract: true,
|
||||||
|
usePostCSS: true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
devtool: config.build.productionSourceMap ? config.build.devtool : false,
|
||||||
|
output: {
|
||||||
|
path: config.build.assetsRoot,
|
||||||
|
filename: utils.assetsPath('js/[name].[chunkhash].js'),
|
||||||
|
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
// http://vuejs.github.io/vue-loader/en/workflow/production.html
|
||||||
|
new webpack.DefinePlugin({
|
||||||
|
'process.env': env
|
||||||
|
}),
|
||||||
|
new UglifyJsPlugin({
|
||||||
|
uglifyOptions: {
|
||||||
|
compress: {
|
||||||
|
warnings: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sourceMap: config.build.productionSourceMap,
|
||||||
|
parallel: true
|
||||||
|
}),
|
||||||
|
// extract css into its own file
|
||||||
|
new ExtractTextPlugin({
|
||||||
|
filename: utils.assetsPath('css/[name].[contenthash].css'),
|
||||||
|
// Setting the following option to `false` will not extract CSS from codesplit chunks.
|
||||||
|
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
|
||||||
|
// It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
|
||||||
|
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
|
||||||
|
allChunks: true,
|
||||||
|
}),
|
||||||
|
// Compress extracted CSS. We are using this plugin so that possible
|
||||||
|
// duplicated CSS from different components can be deduped.
|
||||||
|
new OptimizeCSSPlugin({
|
||||||
|
cssProcessorOptions: config.build.productionSourceMap
|
||||||
|
? { safe: true, map: { inline: false } }
|
||||||
|
: { safe: true }
|
||||||
|
}),
|
||||||
|
// generate dist index.html with correct asset hash for caching.
|
||||||
|
// you can customize output by editing /index.html
|
||||||
|
// see https://github.com/ampedandwired/html-webpack-plugin
|
||||||
|
new HtmlWebpackPlugin({
|
||||||
|
filename: config.build.index,
|
||||||
|
template: 'index.html',
|
||||||
|
inject: true,
|
||||||
|
minify: {
|
||||||
|
removeComments: true,
|
||||||
|
collapseWhitespace: true,
|
||||||
|
removeAttributeQuotes: true
|
||||||
|
// more options:
|
||||||
|
// https://github.com/kangax/html-minifier#options-quick-reference
|
||||||
|
},
|
||||||
|
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
|
||||||
|
chunksSortMode: 'dependency'
|
||||||
|
}),
|
||||||
|
// keep module.id stable when vendor modules does not change
|
||||||
|
new webpack.HashedModuleIdsPlugin(),
|
||||||
|
// enable scope hoisting
|
||||||
|
new webpack.optimize.ModuleConcatenationPlugin(),
|
||||||
|
// split vendor js into its own file
|
||||||
|
new webpack.optimize.CommonsChunkPlugin({
|
||||||
|
name: 'vendor',
|
||||||
|
minChunks (module) {
|
||||||
|
// any required modules inside node_modules are extracted to vendor
|
||||||
|
return (
|
||||||
|
module.resource &&
|
||||||
|
/\.js$/.test(module.resource) &&
|
||||||
|
module.resource.indexOf(
|
||||||
|
path.join(__dirname, '../node_modules')
|
||||||
|
) === 0
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
// extract webpack runtime and module manifest to its own file in order to
|
||||||
|
// prevent vendor hash from being updated whenever app bundle is updated
|
||||||
|
new webpack.optimize.CommonsChunkPlugin({
|
||||||
|
name: 'manifest',
|
||||||
|
minChunks: Infinity
|
||||||
|
}),
|
||||||
|
// This instance extracts shared chunks from code splitted chunks and bundles them
|
||||||
|
// in a separate chunk, similar to the vendor chunk
|
||||||
|
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
|
||||||
|
new webpack.optimize.CommonsChunkPlugin({
|
||||||
|
name: 'app',
|
||||||
|
async: 'vendor-async',
|
||||||
|
children: true,
|
||||||
|
minChunks: 3
|
||||||
|
}),
|
||||||
|
|
||||||
|
// copy custom static assets
|
||||||
|
new CopyWebpackPlugin([
|
||||||
|
{
|
||||||
|
from: path.resolve(__dirname, '../static'),
|
||||||
|
to: config.build.assetsSubDirectory,
|
||||||
|
ignore: ['.*']
|
||||||
|
}
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
if (config.build.productionGzip) {
|
||||||
|
const CompressionWebpackPlugin = require('compression-webpack-plugin')
|
||||||
|
|
||||||
|
webpackConfig.plugins.push(
|
||||||
|
new CompressionWebpackPlugin({
|
||||||
|
asset: '[path].gz[query]',
|
||||||
|
algorithm: 'gzip',
|
||||||
|
test: new RegExp(
|
||||||
|
'\\.(' +
|
||||||
|
config.build.productionGzipExtensions.join('|') +
|
||||||
|
')$'
|
||||||
|
),
|
||||||
|
threshold: 10240,
|
||||||
|
minRatio: 0.8
|
||||||
|
})
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config.build.bundleAnalyzerReport) {
|
||||||
|
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
||||||
|
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = webpackConfig
|
|
@ -0,0 +1,32 @@
|
||||||
|
### This file is an example authorization file for svnserve.
|
||||||
|
### Its format is identical to that of mod_authz_svn authorization
|
||||||
|
### files.
|
||||||
|
### As shown below each section defines authorizations for the path and
|
||||||
|
### (optional) repository specified by the section name.
|
||||||
|
### The authorizations follow. An authorization line can refer to:
|
||||||
|
### - a single user,
|
||||||
|
### - a group of users defined in a special [groups] section,
|
||||||
|
### - an alias defined in a special [aliases] section,
|
||||||
|
### - all authenticated users, using the '$authenticated' token,
|
||||||
|
### - only anonymous users, using the '$anonymous' token,
|
||||||
|
### - anyone, using the '*' wildcard.
|
||||||
|
###
|
||||||
|
### A match can be inverted by prefixing the rule with '~'. Rules can
|
||||||
|
### grant read ('r') access, read-write ('rw') access, or no access
|
||||||
|
### ('').
|
||||||
|
|
||||||
|
[aliases]
|
||||||
|
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
|
||||||
|
|
||||||
|
[groups]
|
||||||
|
# harry_and_sally = harry,sally
|
||||||
|
# harry_sally_and_joe = harry,sally,&joe
|
||||||
|
|
||||||
|
# [/foo/bar]
|
||||||
|
# harry = rw
|
||||||
|
# &joe = r
|
||||||
|
# * =
|
||||||
|
|
||||||
|
# [repository:/baz/fuz]
|
||||||
|
# @harry_and_sally = rw
|
||||||
|
# * = r
|
|
@ -0,0 +1,19 @@
|
||||||
|
### This file is an example hook script environment configuration file.
|
||||||
|
### Hook scripts run in an empty environment by default.
|
||||||
|
### As shown below each section defines environment variables for a
|
||||||
|
### particular hook script. The [default] section defines environment
|
||||||
|
### variables for all hook scripts, unless overridden by a hook-specific
|
||||||
|
### section.
|
||||||
|
|
||||||
|
### This example configures a UTF-8 locale for all hook scripts, so that
|
||||||
|
### special characters, such as umlauts, may be printed to stderr.
|
||||||
|
### If UTF-8 is used with a mod_dav_svn server, the SVNUseUTF8 option must
|
||||||
|
### also be set to 'yes' in httpd.conf.
|
||||||
|
### With svnserve, the LANG environment variable of the svnserve process
|
||||||
|
### must be set to the same value as given here.
|
||||||
|
[default]
|
||||||
|
LANG = en_US.UTF-8
|
||||||
|
|
||||||
|
### This sets the PATH environment variable for the pre-commit hook.
|
||||||
|
[pre-commit]
|
||||||
|
PATH = /usr/local/bin:/usr/bin:/usr/sbin
|
|
@ -0,0 +1,8 @@
|
||||||
|
### This file is an example password file for svnserve.
|
||||||
|
### Its format is similar to that of svnserve.conf. As shown in the
|
||||||
|
### example below it contains one section labelled [users].
|
||||||
|
### The name and password for each user follow, one account per line.
|
||||||
|
|
||||||
|
[users]
|
||||||
|
# harry = harryssecret
|
||||||
|
# sally = sallyssecret
|
|
@ -0,0 +1,81 @@
|
||||||
|
### This file controls the configuration of the svnserve daemon, if you
|
||||||
|
### use it to allow access to this repository. (If you only allow
|
||||||
|
### access through http: and/or file: URLs, then this file is
|
||||||
|
### irrelevant.)
|
||||||
|
|
||||||
|
### Visit http://subversion.apache.org/ for more information.
|
||||||
|
|
||||||
|
[general]
|
||||||
|
### The anon-access and auth-access options control access to the
|
||||||
|
### repository for unauthenticated (a.k.a. anonymous) users and
|
||||||
|
### authenticated users, respectively.
|
||||||
|
### Valid values are "write", "read", and "none".
|
||||||
|
### Setting the value to "none" prohibits both reading and writing;
|
||||||
|
### "read" allows read-only access, and "write" allows complete
|
||||||
|
### read/write access to the repository.
|
||||||
|
### The sample settings below are the defaults and specify that anonymous
|
||||||
|
### users have read-only access to the repository, while authenticated
|
||||||
|
### users have read and write access to the repository.
|
||||||
|
# anon-access = read
|
||||||
|
# auth-access = write
|
||||||
|
### The password-db option controls the location of the password
|
||||||
|
### database file. Unless you specify a path starting with a /,
|
||||||
|
### the file's location is relative to the directory containing
|
||||||
|
### this configuration file.
|
||||||
|
### If SASL is enabled (see below), this file will NOT be used.
|
||||||
|
### Uncomment the line below to use the default password file.
|
||||||
|
# password-db = passwd
|
||||||
|
### The authz-db option controls the location of the authorization
|
||||||
|
### rules for path-based access control. Unless you specify a path
|
||||||
|
### starting with a /, the file's location is relative to the
|
||||||
|
### directory containing this file. The specified path may be a
|
||||||
|
### repository relative URL (^/) or an absolute file:// URL to a text
|
||||||
|
### file in a Subversion repository. If you don't specify an authz-db,
|
||||||
|
### no path-based access control is done.
|
||||||
|
### Uncomment the line below to use the default authorization file.
|
||||||
|
# authz-db = authz
|
||||||
|
### The groups-db option controls the location of the file with the
|
||||||
|
### group definitions and allows maintaining groups separately from the
|
||||||
|
### authorization rules. The groups-db file is of the same format as the
|
||||||
|
### authz-db file and should contain a single [groups] section with the
|
||||||
|
### group definitions. If the option is enabled, the authz-db file cannot
|
||||||
|
### contain a [groups] section. Unless you specify a path starting with
|
||||||
|
### a /, the file's location is relative to the directory containing this
|
||||||
|
### file. The specified path may be a repository relative URL (^/) or an
|
||||||
|
### absolute file:// URL to a text file in a Subversion repository.
|
||||||
|
### This option is not being used by default.
|
||||||
|
# groups-db = groups
|
||||||
|
### This option specifies the authentication realm of the repository.
|
||||||
|
### If two repositories have the same authentication realm, they should
|
||||||
|
### have the same password database, and vice versa. The default realm
|
||||||
|
### is repository's uuid.
|
||||||
|
# realm = My First Repository
|
||||||
|
### The force-username-case option causes svnserve to case-normalize
|
||||||
|
### usernames before comparing them against the authorization rules in the
|
||||||
|
### authz-db file configured above. Valid values are "upper" (to upper-
|
||||||
|
### case the usernames), "lower" (to lowercase the usernames), and
|
||||||
|
### "none" (to compare usernames as-is without case conversion, which
|
||||||
|
### is the default behavior).
|
||||||
|
# force-username-case = none
|
||||||
|
### The hooks-env options specifies a path to the hook script environment
|
||||||
|
### configuration file. This option overrides the per-repository default
|
||||||
|
### and can be used to configure the hook script environment for multiple
|
||||||
|
### repositories in a single file, if an absolute path is specified.
|
||||||
|
### Unless you specify an absolute path, the file's location is relative
|
||||||
|
### to the directory containing this file.
|
||||||
|
# hooks-env = hooks-env
|
||||||
|
|
||||||
|
[sasl]
|
||||||
|
### This option specifies whether you want to use the Cyrus SASL
|
||||||
|
### library for authentication. Default is false.
|
||||||
|
### Enabling this option requires svnserve to have been built with Cyrus
|
||||||
|
### SASL support; to check, run 'svnserve --version' and look for a line
|
||||||
|
### reading 'Cyrus SASL authentication is available.'
|
||||||
|
# use-sasl = true
|
||||||
|
### These options specify the desired strength of the security layer
|
||||||
|
### that you want SASL to provide. 0 means no encryption, 1 means
|
||||||
|
### integrity-checking only, values larger than 1 are correlated
|
||||||
|
### to the effective key length for encryption (e.g. 128 means 128-bit
|
||||||
|
### encryption). The values below are the defaults.
|
||||||
|
# min-encryption = 0
|
||||||
|
# max-encryption = 256
|
|
@ -0,0 +1,80 @@
|
||||||
|
'use strict'
|
||||||
|
// Template version: 1.3.1
|
||||||
|
// see http://vuejs-templates.github.io/webpack for documentation.
|
||||||
|
|
||||||
|
const path = require('path')
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
dev: {
|
||||||
|
// Paths
|
||||||
|
assetsSubDirectory: 'static',
|
||||||
|
assetsPublicPath: '/',
|
||||||
|
proxyTable: {
|
||||||
|
'/gyhl': {
|
||||||
|
target: '/gyhl',//8889
|
||||||
|
// target: 'http://36.137.58.70:52/gyhl',
|
||||||
|
// target:"http://192.168.1.72:21925", //lj-local
|
||||||
|
changeOrigin: true,
|
||||||
|
pathRewrite: {
|
||||||
|
'^/gyhl': ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Various Dev Server settings
|
||||||
|
host: 'localhost', // can be overwritten by process.env.HOST
|
||||||
|
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
||||||
|
autoOpenBrowser: true,
|
||||||
|
errorOverlay: true,
|
||||||
|
notifyOnErrors: true,
|
||||||
|
poll: false,
|
||||||
|
// https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source Maps
|
||||||
|
*/
|
||||||
|
|
||||||
|
// https://webpack.js.org/configuration/devtool/#development
|
||||||
|
devtool: 'cheap-module-eval-source-map',
|
||||||
|
|
||||||
|
// If you have problems debugging vue-files in devtools,
|
||||||
|
// set this to false - it *may* help
|
||||||
|
// https://vue-loader.vuejs.org/en/options.html#cachebusting
|
||||||
|
cacheBusting: true,
|
||||||
|
|
||||||
|
cssSourceMap: true
|
||||||
|
},
|
||||||
|
|
||||||
|
build: {
|
||||||
|
// Template for index.html
|
||||||
|
index: path.resolve(__dirname, '../gyhl/index.html'),
|
||||||
|
|
||||||
|
// Paths
|
||||||
|
assetsRoot: path.resolve(__dirname, '../gyhl'),
|
||||||
|
assetsSubDirectory: 'static',
|
||||||
|
assetsPublicPath: '/',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source Maps
|
||||||
|
*/
|
||||||
|
|
||||||
|
productionSourceMap: false,
|
||||||
|
// https://webpack.js.org/configuration/devtool/#production
|
||||||
|
devtool: '#source-map',
|
||||||
|
|
||||||
|
// Gzip off by default as many popular static hosts such as
|
||||||
|
// Surge or Netlify already gzip all static assets for you.
|
||||||
|
// Before setting to `true`, make sure to:
|
||||||
|
// npm install --save-dev compression-webpack-plugin
|
||||||
|
productionGzip: false,
|
||||||
|
productionGzipExtensions: [
|
||||||
|
'js', 'css'
|
||||||
|
],
|
||||||
|
|
||||||
|
// Run the build command with an extra argument to
|
||||||
|
// View the bundle analyzer report after build finishes:
|
||||||
|
// `npm run build --report`
|
||||||
|
// Set to `true` or `false` to always turn it on or off
|
||||||
|
bundleAnalyzerReport: process.env.npm_config_report
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
'use strict'
|
||||||
|
const merge = require('webpack-merge')
|
||||||
|
const prodEnv = require('./prod.env')
|
||||||
|
|
||||||
|
module.exports = merge(prodEnv, {
|
||||||
|
NODE_ENV: '"development"'
|
||||||
|
})
|
|
@ -0,0 +1,78 @@
|
||||||
|
"use strict";
|
||||||
|
// Template version: 1.3.1
|
||||||
|
// see http://vuejs-templates.github.io/webpack for documentation.
|
||||||
|
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
dev: {
|
||||||
|
// Paths
|
||||||
|
assetsSubDirectory: "static",
|
||||||
|
assetsPublicPath: "/",
|
||||||
|
proxyTable: {
|
||||||
|
"/gyhl": {
|
||||||
|
// target: "/gyhl", //8889
|
||||||
|
target: "http://36.137.58.70:52/gyhl",
|
||||||
|
// // target:"http://192.168.1.194:21925", //lj-local
|
||||||
|
changeOrigin: true,
|
||||||
|
pathRewrite: {
|
||||||
|
"^/gyhl": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Various Dev Server settings
|
||||||
|
host: "localhost", // can be overwritten by process.env.HOST
|
||||||
|
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
||||||
|
autoOpenBrowser: true,
|
||||||
|
errorOverlay: true,
|
||||||
|
notifyOnErrors: true,
|
||||||
|
poll: false,
|
||||||
|
// https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source Maps
|
||||||
|
*/
|
||||||
|
|
||||||
|
// https://webpack.js.org/configuration/devtool/#development
|
||||||
|
devtool: "cheap-module-eval-source-map",
|
||||||
|
|
||||||
|
// If you have problems debugging vue-files in devtools,
|
||||||
|
// set this to false - it *may* help
|
||||||
|
// https://vue-loader.vuejs.org/en/options.html#cachebusting
|
||||||
|
cacheBusting: true,
|
||||||
|
|
||||||
|
cssSourceMap: true
|
||||||
|
},
|
||||||
|
|
||||||
|
build: {
|
||||||
|
// Template for index.html
|
||||||
|
index: path.resolve(__dirname, "../gyhl/index.html"),
|
||||||
|
|
||||||
|
// Paths
|
||||||
|
assetsRoot: path.resolve(__dirname, "../gyhl"),
|
||||||
|
assetsSubDirectory: "static",
|
||||||
|
assetsPublicPath: "/",
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source Maps
|
||||||
|
*/
|
||||||
|
|
||||||
|
productionSourceMap: false,
|
||||||
|
// https://webpack.js.org/configuration/devtool/#production
|
||||||
|
devtool: "#source-map",
|
||||||
|
|
||||||
|
// Gzip off by default as many popular static hosts such as
|
||||||
|
// Surge or Netlify already gzip all static assets for you.
|
||||||
|
// Before setting to `true`, make sure to:
|
||||||
|
// npm install --save-dev compression-webpack-plugin
|
||||||
|
productionGzip: false,
|
||||||
|
productionGzipExtensions: ["js", "css"],
|
||||||
|
|
||||||
|
// Run the build command with an extra argument to
|
||||||
|
// View the bundle analyzer report after build finishes:
|
||||||
|
// `npm run build --report`
|
||||||
|
// Set to `true` or `false` to always turn it on or off
|
||||||
|
bundleAnalyzerReport: process.env.npm_config_report
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,4 @@
|
||||||
|
'use strict'
|
||||||
|
module.exports = {
|
||||||
|
NODE_ENV: '"production"'
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
0
|
|
@ -0,0 +1 @@
|
||||||
|
fsfs
|
|
@ -0,0 +1,200 @@
|
||||||
|
### This file controls the configuration of the FSFS filesystem.
|
||||||
|
|
||||||
|
[memcached-servers]
|
||||||
|
### These options name memcached servers used to cache internal FSFS
|
||||||
|
### data. See http://www.danga.com/memcached/ for more information on
|
||||||
|
### memcached. To use memcached with FSFS, run one or more memcached
|
||||||
|
### servers, and specify each of them as an option like so:
|
||||||
|
# first-server = 127.0.0.1:11211
|
||||||
|
# remote-memcached = mymemcached.corp.example.com:11212
|
||||||
|
### The option name is ignored; the value is of the form HOST:PORT.
|
||||||
|
### memcached servers can be shared between multiple repositories;
|
||||||
|
### however, if you do this, you *must* ensure that repositories have
|
||||||
|
### distinct UUIDs and paths, or else cached data from one repository
|
||||||
|
### might be used by another accidentally. Note also that memcached has
|
||||||
|
### no authentication for reads or writes, so you must ensure that your
|
||||||
|
### memcached servers are only accessible by trusted users.
|
||||||
|
|
||||||
|
[caches]
|
||||||
|
### When a cache-related error occurs, normally Subversion ignores it
|
||||||
|
### and continues, logging an error if the server is appropriately
|
||||||
|
### configured (and ignoring it with file:// access). To make
|
||||||
|
### Subversion never ignore cache errors, uncomment this line.
|
||||||
|
# fail-stop = true
|
||||||
|
|
||||||
|
[rep-sharing]
|
||||||
|
### To conserve space, the filesystem can optionally avoid storing
|
||||||
|
### duplicate representations. This comes at a slight cost in
|
||||||
|
### performance, as maintaining a database of shared representations can
|
||||||
|
### increase commit times. The space savings are dependent upon the size
|
||||||
|
### of the repository, the number of objects it contains and the amount of
|
||||||
|
### duplication between them, usually a function of the branching and
|
||||||
|
### merging process.
|
||||||
|
###
|
||||||
|
### The following parameter enables rep-sharing in the repository. It can
|
||||||
|
### be switched on and off at will, but for best space-saving results
|
||||||
|
### should be enabled consistently over the life of the repository.
|
||||||
|
### 'svnadmin verify' will check the rep-cache regardless of this setting.
|
||||||
|
### rep-sharing is enabled by default.
|
||||||
|
# enable-rep-sharing = true
|
||||||
|
|
||||||
|
[deltification]
|
||||||
|
### To conserve space, the filesystem stores data as differences against
|
||||||
|
### existing representations. This comes at a slight cost in performance,
|
||||||
|
### as calculating differences can increase commit times. Reading data
|
||||||
|
### will also create higher CPU load and the data will be fragmented.
|
||||||
|
### Since deltification tends to save significant amounts of disk space,
|
||||||
|
### the overall I/O load can actually be lower.
|
||||||
|
###
|
||||||
|
### The options in this section allow for tuning the deltification
|
||||||
|
### strategy. Their effects on data size and server performance may vary
|
||||||
|
### from one repository to another. Versions prior to 1.8 will ignore
|
||||||
|
### this section.
|
||||||
|
###
|
||||||
|
### The following parameter enables deltification for directories. It can
|
||||||
|
### be switched on and off at will, but for best space-saving results
|
||||||
|
### should be enabled consistently over the lifetime of the repository.
|
||||||
|
### Repositories containing large directories will benefit greatly.
|
||||||
|
### In rarely accessed repositories, the I/O overhead may be significant
|
||||||
|
### as caches will most likely be low.
|
||||||
|
### directory deltification is enabled by default.
|
||||||
|
# enable-dir-deltification = true
|
||||||
|
###
|
||||||
|
### The following parameter enables deltification for properties on files
|
||||||
|
### and directories. Overall, this is a minor tuning option but can save
|
||||||
|
### some disk space if you merge frequently or frequently change node
|
||||||
|
### properties. You should not activate this if rep-sharing has been
|
||||||
|
### disabled because this may result in a net increase in repository size.
|
||||||
|
### property deltification is enabled by default.
|
||||||
|
# enable-props-deltification = true
|
||||||
|
###
|
||||||
|
### During commit, the server may need to walk the whole change history of
|
||||||
|
### of a given node to find a suitable deltification base. This linear
|
||||||
|
### process can impact commit times, svnadmin load and similar operations.
|
||||||
|
### This setting limits the depth of the deltification history. If the
|
||||||
|
### threshold has been reached, the node will be stored as fulltext and a
|
||||||
|
### new deltification history begins.
|
||||||
|
### Note, this is unrelated to svn log.
|
||||||
|
### Very large values rarely provide significant additional savings but
|
||||||
|
### can impact performance greatly - in particular if directory
|
||||||
|
### deltification has been activated. Very small values may be useful in
|
||||||
|
### repositories that are dominated by large, changing binaries.
|
||||||
|
### Should be a power of two minus 1. A value of 0 will effectively
|
||||||
|
### disable deltification.
|
||||||
|
### For 1.8, the default value is 1023; earlier versions have no limit.
|
||||||
|
# max-deltification-walk = 1023
|
||||||
|
###
|
||||||
|
### The skip-delta scheme used by FSFS tends to repeatably store redundant
|
||||||
|
### delta information where a simple delta against the latest version is
|
||||||
|
### often smaller. By default, 1.8+ will therefore use skip deltas only
|
||||||
|
### after the linear chain of deltas has grown beyond the threshold
|
||||||
|
### specified by this setting.
|
||||||
|
### Values up to 64 can result in some reduction in repository size for
|
||||||
|
### the cost of quickly increasing I/O and CPU costs. Similarly, smaller
|
||||||
|
### numbers can reduce those costs at the cost of more disk space. For
|
||||||
|
### rarely read repositories or those containing larger binaries, this may
|
||||||
|
### present a better trade-off.
|
||||||
|
### Should be a power of two. A value of 1 or smaller will cause the
|
||||||
|
### exclusive use of skip-deltas (as in pre-1.8).
|
||||||
|
### For 1.8, the default value is 16; earlier versions use 1.
|
||||||
|
# max-linear-deltification = 16
|
||||||
|
###
|
||||||
|
### After deltification, we compress the data to minimize on-disk size.
|
||||||
|
### This setting controls the compression algorithm, which will be used in
|
||||||
|
### future revisions. It can be used to either disable compression or to
|
||||||
|
### select between available algorithms (zlib, lz4). zlib is a general-
|
||||||
|
### purpose compression algorithm. lz4 is a fast compression algorithm
|
||||||
|
### which should be preferred for repositories with large and, possibly,
|
||||||
|
### incompressible files. Note that the compression ratio of lz4 is
|
||||||
|
### usually lower than the one provided by zlib, but using it can
|
||||||
|
### significantly speed up commits as well as reading the data.
|
||||||
|
### lz4 compression algorithm is supported, starting from format 8
|
||||||
|
### repositories, available in Subversion 1.10 and higher.
|
||||||
|
### The syntax of this option is:
|
||||||
|
### compression = none | lz4 | zlib | zlib-1 ... zlib-9
|
||||||
|
### Versions prior to Subversion 1.10 will ignore this option.
|
||||||
|
### The default value is 'lz4' if supported by the repository format and
|
||||||
|
### 'zlib' otherwise. 'zlib' is currently equivalent to 'zlib-5'.
|
||||||
|
# compression = lz4
|
||||||
|
###
|
||||||
|
### DEPRECATED: The new 'compression' option deprecates previously used
|
||||||
|
### 'compression-level' option, which was used to configure zlib compression.
|
||||||
|
### For compatibility with previous versions of Subversion, this option can
|
||||||
|
### still be used (and it will result in zlib compression with the
|
||||||
|
### corresponding compression level).
|
||||||
|
### compression-level = 0 ... 9 (default is 5)
|
||||||
|
|
||||||
|
[packed-revprops]
|
||||||
|
### This parameter controls the size (in kBytes) of packed revprop files.
|
||||||
|
### Revprops of consecutive revisions will be concatenated into a single
|
||||||
|
### file up to but not exceeding the threshold given here. However, each
|
||||||
|
### pack file may be much smaller and revprops of a single revision may be
|
||||||
|
### much larger than the limit set here. The threshold will be applied
|
||||||
|
### before optional compression takes place.
|
||||||
|
### Large values will reduce disk space usage at the expense of increased
|
||||||
|
### latency and CPU usage reading and changing individual revprops.
|
||||||
|
### Values smaller than 4 kByte will not improve latency any further and
|
||||||
|
### quickly render revprop packing ineffective.
|
||||||
|
### revprop-pack-size is 16 kBytes by default for non-compressed revprop
|
||||||
|
### pack files and 64 kBytes when compression has been enabled.
|
||||||
|
# revprop-pack-size = 16
|
||||||
|
###
|
||||||
|
### To save disk space, packed revprop files may be compressed. Standard
|
||||||
|
### revprops tend to allow for very effective compression. Reading and
|
||||||
|
### even more so writing, become significantly more CPU intensive.
|
||||||
|
### Compressing packed revprops is disabled by default.
|
||||||
|
# compress-packed-revprops = false
|
||||||
|
|
||||||
|
[io]
|
||||||
|
### Parameters in this section control the data access granularity in
|
||||||
|
### format 7 repositories and later. The defaults should translate into
|
||||||
|
### decent performance over a wide range of setups.
|
||||||
|
###
|
||||||
|
### When a specific piece of information needs to be read from disk, a
|
||||||
|
### data block is being read at once and its contents are being cached.
|
||||||
|
### If the repository is being stored on a RAID, the block size should be
|
||||||
|
### either 50% or 100% of RAID block size / granularity. Also, your file
|
||||||
|
### system blocks/clusters should be properly aligned and sized. In that
|
||||||
|
### setup, each access will hit only one disk (minimizes I/O load) but
|
||||||
|
### uses all the data provided by the disk in a single access.
|
||||||
|
### For SSD-based storage systems, slightly lower values around 16 kB
|
||||||
|
### may improve latency while still maximizing throughput. If block-read
|
||||||
|
### has not been enabled, this will be capped to 4 kBytes.
|
||||||
|
### Can be changed at any time but must be a power of 2.
|
||||||
|
### block-size is given in kBytes and with a default of 64 kBytes.
|
||||||
|
# block-size = 64
|
||||||
|
###
|
||||||
|
### The log-to-phys index maps data item numbers to offsets within the
|
||||||
|
### rev or pack file. This index is organized in pages of a fixed maximum
|
||||||
|
### capacity. To access an item, the page table and the respective page
|
||||||
|
### must be read.
|
||||||
|
### This parameter only affects revisions with thousands of changed paths.
|
||||||
|
### If you have several extremely large revisions (~1 mio changes), think
|
||||||
|
### about increasing this setting. Reducing the value will rarely result
|
||||||
|
### in a net speedup.
|
||||||
|
### This is an expert setting. Must be a power of 2.
|
||||||
|
### l2p-page-size is 8192 entries by default.
|
||||||
|
# l2p-page-size = 8192
|
||||||
|
###
|
||||||
|
### The phys-to-log index maps positions within the rev or pack file to
|
||||||
|
### to data items, i.e. describes what piece of information is being
|
||||||
|
### stored at any particular offset. The index describes the rev file
|
||||||
|
### in chunks (pages) and keeps a global list of all those pages. Large
|
||||||
|
### pages mean a shorter page table but a larger per-page description of
|
||||||
|
### data items in it. The latency sweetspot depends on the change size
|
||||||
|
### distribution but covers a relatively wide range.
|
||||||
|
### If the repository contains very large files, i.e. individual changes
|
||||||
|
### of tens of MB each, increasing the page size will shorten the index
|
||||||
|
### file at the expense of a slightly increased latency in sections with
|
||||||
|
### smaller changes.
|
||||||
|
### For source code repositories, this should be about 16x the block-size.
|
||||||
|
### Must be a power of 2.
|
||||||
|
### p2l-page-size is given in kBytes and with a default of 1024 kBytes.
|
||||||
|
# p2l-page-size = 1024
|
||||||
|
|
||||||
|
[debug]
|
||||||
|
###
|
||||||
|
### Whether to verify each new revision immediately before finalizing
|
||||||
|
### the commit. This is disabled by default except in maintainer-mode
|
||||||
|
### builds.
|
||||||
|
# verify-before-commit = false
|
|
@ -0,0 +1 @@
|
||||||
|
0
|
|
@ -0,0 +1,5 @@
|
||||||
|
K 8
|
||||||
|
svn:date
|
||||||
|
V 27
|
||||||
|
2019-12-05T11:02:48.701433Z
|
||||||
|
END
|
|
@ -0,0 +1,5 @@
|
||||||
|
K 8
|
||||||
|
svn:date
|
||||||
|
V 27
|
||||||
|
2019-12-05T11:02:48.701433Z
|
||||||
|
END
|
|
@ -0,0 +1 @@
|
||||||
|
0
|
|
@ -0,0 +1,2 @@
|
||||||
|
011d5211-aa00-2545-a44f-7a17e490ad71
|
||||||
|
39bd984c-c98d-f14b-86ac-c37aed3fe6f5
|
|
@ -0,0 +1 @@
|
||||||
|
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./static/favicon.ico><link rel=stylesheet href=//at.alicdn.com/t/c/font_2149865_4m66szwzwl8.css><meta name=renderer content=webkit><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><title>麦得豪新材料有限公司</title><link href=/static/css/app.e9a8518727324fd076948b5c6bad9ecf.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.21d487c377c8ffe8aba1.js></script><script type=text/javascript src=/static/js/vendor.79c835b96b69ea047c5b.js></script><script type=text/javascript src=/static/js/app.5f486cd1330fd1812b6e.js></script></body></html>
|
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 370 KiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 139 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 397 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 43 KiB |
|
@ -0,0 +1 @@
|
||||||
|
webpackJsonp([10],{"4Yyb":function(e,a){},V8uG:function(e,a){},XYs2:function(e,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var r=t("woOf"),s=t.n(r),i=t("Dd8w"),o=t.n(i),m=t("NYxO"),n=t("bzuE"),l={components:{},data:function(){return{formData:{code:"",name:"",startTime:"",endTime:"",manHour:"",remark:""},loading:!1,options:[],selectDeptId:[],config:n.a,btnDisabled:!0,isDisabled:!1,rulesForm:{code:[{required:!0,message:"请填写班制编码",trigger:"blur"}],name:[{required:!0,message:"请填写班制名称",trigger:"blur"}],startTime:[{required:!0,message:"请填写开始时间",trigger:"blur"}],endTime:[{required:!0,message:"请填写结束时间",trigger:"blur"}],manHour:[{required:!0,message:"请填写工作时长",trigger:"blur"}]},tableData:[]}},mounted:function(){this.$route.query.id&&(this.formData.id=this.$route.query.id,this.getDetail())},watch:{},methods:o()({},Object(m.d)({removeTagNav:"tagNav/removeTagNav"}),{getDetail:function(){var e=this;this.loading=!0,this.$nextTick().then(function(){e.$api.shiftAPI.shiftDetail({shiftId:e.formData.id}).then(function(a){e.loading=!1,0===a.code&&s()(e.formData,a.data)})})},gotoIndex:function(){this.removeTagNav({path:this.$route.path,title:this.$route.meta.name}),this.$router.push({path:"/basic/shift",query:{t:Date.now()}}),this.formData={}},save:function(e){var a=this;this.$refs[e].validate(function(e){if(e){if(a.isDisabled)return;if(0==a.formData.manHour)return void a.$message({message:"工作时长不能为0",type:"error"});a.isDisabled=!0,a.$api.shiftAPI.addAndChangeShift(a.formData).then(function(e){a.isDisabled=!1,0===e.code?(a.$message({message:e.msg,type:"success"}),a.gotoIndex()):a.$message({message:e.msg,type:"error"})})}})}})},f={render:function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("div",{staticClass:"sys-box"},[t("div",{staticClass:"sys-operate"},[t("el-button",{attrs:{type:"primary"},on:{click:e.gotoIndex}},[e._v(e._s(e.config.cancelText))]),e._v(" "),t("el-button",{directives:[{name:"has",rawName:"v-has",value:"basic:shift:save",expression:"'basic:shift:save'"}],attrs:{type:"primary",disabled:e.isDisabled},on:{click:function(a){return e.save("form")}}},[e._v("保存")])],1),e._v(" "),t("div",{staticClass:"sys-form"},[t("el-form",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],ref:"form",attrs:{"lable-width":"120px","label-width":"120px",model:e.formData,rules:e.rulesForm}},[t("div",{staticClass:"flex process-box"},[t("el-form-item",{staticClass:"form-inline",attrs:{prop:"code",label:"班制代码"}},[t("el-input",{attrs:{placeholder:"请输入班制代码"},model:{value:e.formData.code,callback:function(a){e.$set(e.formData,"code",a)},expression:"formData.code"}})],1),e._v(" "),t("el-form-item",{staticClass:"form-inline",attrs:{prop:"name",label:"班制名称"}},[t("el-input",{attrs:{placeholder:"请输入班制名称"},model:{value:e.formData.name,callback:function(a){e.$set(e.formData,"name",a)},expression:"formData.name"}})],1),e._v(" "),t("el-form-item"),e._v(" "),t("el-form-item",{staticClass:"form-inline",attrs:{label:"开始时间",prop:"startTime"}},[t("el-time-picker",{attrs:{format:"HH:mm:ss","value-format":"HH:mm:ss",placeholder:"选择时间"},model:{value:e.formData.startTime,callback:function(a){e.$set(e.formData,"startTime",a)},expression:"formData.startTime"}})],1),e._v(" "),t("el-form-item",{staticClass:"form-inline",attrs:{label:"结束时间",prop:"endTime"}},[t("el-time-picker",{attrs:{format:"HH:mm:ss","value-format":"HH:mm:ss",placeholder:"选择时间"},model:{value:e.formData.endTime,callback:function(a){e.$set(e.formData,"endTime",a)},expression:"formData.endTime"}})],1),e._v(" "),t("el-form-item",{staticClass:"form-inline",attrs:{prop:"manHour",label:"工作时长"}},[t("el-input-number",{attrs:{min:0,label:"描述文字",size:"small"},model:{value:e.formData.manHour,callback:function(a){e.$set(e.formData,"manHour",a)},expression:"formData.manHour"}}),e._v(" (小时)\n ")],1)],1),e._v(" "),t("el-form-item",{attrs:{label:"备注","label-width":"100px"}},[t("el-input",{staticStyle:{width:"100%"},attrs:{type:"textarea",autosize:{minRows:4},clearable:""},model:{value:e.formData.remark,callback:function(a){e.$set(e.formData,"remark",a)},expression:"formData.remark"}})],1)],1)],1)])},staticRenderFns:[]};var c=t("VU/8")(l,f,!1,function(e){t("V8uG"),t("4Yyb")},"data-v-6d28eeea",null);a.default=c.exports}});
|
|
@ -0,0 +1 @@
|
||||||
|
webpackJsonp([11],{WybU:function(e,t){},awFY:function(e,t){},uF92:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var l=a("Dd8w"),n=a.n(l),o=a("NYxO"),r=a("bzuE"),i={data:function(){return{id:"",planNo:"",formDetail:{},formData:{},tableData:[],dialogVisible:!1,loading:!1,config:r.a}},mounted:function(){this.$route.query.id&&(this.id=this.$route.query.id,this.planNo=this.$route.query.planNo),this.getDetail()},methods:n()({},Object(o.d)({removeTagNav:"tagNav/removeTagNav"}),{getDetail:function(){var e=this;this.loading=!0,this.$api.planManagementAPI.workingProcedurePlanfollowPlan({id:this.id}).then(function(t){0===t.code&&(e.tableData=t.data.datas?t.data.datas:[]),e.loading=!1}).catch(function(t){e.loading=!1})},back:function(){this.removeTagNav({path:this.$route.path,title:this.$route.meta.name}),this.$router.push({path:"/planManagement/working_procedure",query:{t:Date.now()}})}})},c={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"sys-box repair-box"},[a("div",{staticClass:"sys-operate"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.back()}}},[e._v(e._s(e.config.cancelText))])],1),e._v(" "),a("div",{staticClass:"sys-form"},[a("el-form",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{"label-width":"120px",model:e.formDetail}},[a("el-divider",{attrs:{"content-position":"left"}},[e._v("工序计划号: "),a("span",[e._v(e._s(e.planNo))])]),e._v(" "),a("el-divider",{attrs:{"content-position":"left"}},[e._v("关联的派工单列表 ")]),e._v(" "),a("div",{staticClass:"sys-table"},[a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],ref:"tb",attrs:{border:"",fit:"",data:e.tableData,"header-cell-style":{fontWeight:"normal",textAlign:"center",backgroundColor:"#eceff4",color:"#222"}}},[a("el-table-column",{attrs:{align:"center",prop:"code",label:"派工单号",width:"160"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"processName",label:"工序名称"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"deptName",label:"生产部门"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"operatorName",label:"操作工"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"deviceName",label:"设备"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"startTime",label:"计划开工日期"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"endTime",label:"计划完工日期"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"actualStartTime",label:"实际开工日期"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"actualEndTime",label:"实际完工日期"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"planCount",label:"计划生产数量"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"completionCount",label:"完工数量"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"conformityCount",label:"合格数量"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"unConformityCount",label:"不合格数量"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"scrapCount",label:"报废数量"}}),e._v(" "),a("el-table-column",{attrs:{align:"center",prop:"reworkCount",label:"返工数量"}})],1)],1)],1)],1)])},staticRenderFns:[]};var s=a("VU/8")(i,c,!1,function(e){a("awFY"),a("WybU")},"data-v-33aa034c",null);t.default=s.exports}});
|