Comparing version 1.5.2 to 1.5.3
@@ -1,35 +0,43 @@ | ||
var utils = require('./utils') | ||
var webpack = require('webpack') | ||
var config = require('../config') | ||
var merge = require('webpack-merge') | ||
var baseWebpackConfig = require('./webpack.base.conf') | ||
var HtmlWebpackPlugin = require('html-webpack-plugin') | ||
var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') | ||
var fs = require('fs'); | ||
var path = require('path'); | ||
var utils = require('./utils'); | ||
var webpack = require('webpack'); | ||
var config = require('../config'); | ||
var merge = require('webpack-merge'); | ||
var baseWebpackConfig = require('./webpack.base.conf'); | ||
var HtmlWebpackPlugin = require('html-webpack-plugin'); | ||
var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); | ||
// add hot-reload related code to entry chunks | ||
Object.keys(baseWebpackConfig.entry).forEach(function (name) { | ||
baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) | ||
}) | ||
Object.keys(baseWebpackConfig.entry).forEach(function(name) { | ||
baseWebpackConfig.entry[name] = ['./build/dev-client'].concat( | ||
baseWebpackConfig.entry[name] | ||
); | ||
}); | ||
module.exports = merge(baseWebpackConfig, { | ||
module: { | ||
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) | ||
}, | ||
// cheap-module-eval-source-map is faster for development | ||
devtool: '#cheap-module-eval-source-map', | ||
plugins: [ | ||
new webpack.DefinePlugin({ | ||
'process.env': config.dev.env | ||
}), | ||
// https://github.com/glenjamin/webpack-hot-middleware#installation--usage | ||
new webpack.HotModuleReplacementPlugin(), | ||
new webpack.NoEmitOnErrorsPlugin(), | ||
// https://github.com/ampedandwired/html-webpack-plugin | ||
new HtmlWebpackPlugin({ | ||
filename: 'index.html', | ||
template: 'index.html', | ||
inject: true | ||
}), | ||
new FriendlyErrorsPlugin() | ||
] | ||
}) | ||
module: { | ||
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) | ||
}, | ||
// cheap-module-eval-source-map is faster for development | ||
devtool: '#cheap-module-eval-source-map', | ||
plugins: [ | ||
new webpack.DefinePlugin({ | ||
'process.env': config.dev.env | ||
}), | ||
// https://github.com/glenjamin/webpack-hot-middleware#installation--usage | ||
new webpack.HotModuleReplacementPlugin(), | ||
new webpack.NoEmitOnErrorsPlugin(), | ||
// https://github.com/ampedandwired/html-webpack-plugin | ||
new HtmlWebpackPlugin({ | ||
filename: 'index.html', | ||
template: 'index.html', | ||
inject: true, | ||
serviceWorkerLoader: `<script>${fs.readFileSync( | ||
path.join(__dirname, './service-worker-dev.js'), | ||
'utf-8' | ||
)}</script>` | ||
}), | ||
new FriendlyErrorsPlugin() | ||
] | ||
}); |
@@ -1,126 +0,141 @@ | ||
var path = require('path') | ||
var utils = require('./utils') | ||
var webpack = require('webpack') | ||
var config = require('../config') | ||
var merge = require('webpack-merge') | ||
var baseWebpackConfig = require('./webpack.base.conf') | ||
var CopyWebpackPlugin = require('copy-webpack-plugin') | ||
var HtmlWebpackPlugin = require('html-webpack-plugin') | ||
var ExtractTextPlugin = require('extract-text-webpack-plugin') | ||
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') | ||
var path = require('path'); | ||
var utils = require('./utils'); | ||
var webpack = require('webpack'); | ||
var config = require('../config'); | ||
var merge = require('webpack-merge'); | ||
var baseWebpackConfig = require('./webpack.base.conf'); | ||
var CopyWebpackPlugin = require('copy-webpack-plugin'); | ||
var HtmlWebpackPlugin = require('html-webpack-plugin'); | ||
var ExtractTextPlugin = require('extract-text-webpack-plugin'); | ||
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); | ||
var SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin'); | ||
var loadMinified = require('./load-minified'); | ||
var env = | ||
process.env.NODE_ENV === 'testing' | ||
? require('../config/test.env') | ||
: config.build.env; | ||
var env = process.env.NODE_ENV === 'testing' | ||
? require('../config/test.env') | ||
: config.build.env | ||
var webpackConfig = merge(baseWebpackConfig, { | ||
module: { | ||
rules: utils.styleLoaders({ | ||
sourceMap: config.build.productionSourceMap, | ||
extract: true | ||
}) | ||
}, | ||
devtool: config.build.productionSourceMap ? '#source-map' : 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 webpack.optimize.UglifyJsPlugin({ | ||
compress: { | ||
warnings: false | ||
}, | ||
sourceMap: true | ||
}), | ||
// extract css into its own file | ||
new ExtractTextPlugin({ | ||
filename: utils.assetsPath('css/[name].[contenthash].css') | ||
}), | ||
// Compress extracted CSS. We are using this plugin so that possible | ||
// duplicated CSS from different components can be deduped. | ||
new OptimizeCSSPlugin({ | ||
cssProcessorOptions: { | ||
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: process.env.NODE_ENV === 'testing' | ||
? 'index.html' | ||
: 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 vender modules does not change | ||
new webpack.HashedModuleIdsPlugin(), | ||
// split vendor js into its own file | ||
new webpack.optimize.CommonsChunkPlugin({ | ||
name: 'vendor', | ||
minChunks: function (module, count) { | ||
// 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', | ||
chunks: ['vendor'] | ||
}), | ||
// copy custom static assets | ||
new CopyWebpackPlugin([ | ||
{ | ||
from: path.resolve(__dirname, '../static'), | ||
to: config.build.assetsSubDirectory, | ||
ignore: ['.*'] | ||
} | ||
]) | ||
] | ||
}) | ||
module: { | ||
rules: utils.styleLoaders({ | ||
sourceMap: config.build.productionSourceMap, | ||
extract: true | ||
}) | ||
}, | ||
devtool: config.build.productionSourceMap ? '#source-map' : 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 webpack.optimize.UglifyJsPlugin({ | ||
compress: { | ||
warnings: false | ||
}, | ||
sourceMap: true | ||
}), | ||
// extract css into its own file | ||
new ExtractTextPlugin({ | ||
filename: utils.assetsPath('css/[name].[contenthash].css') | ||
}), | ||
// Compress extracted CSS. We are using this plugin so that possible | ||
// duplicated CSS from different components can be deduped. | ||
new OptimizeCSSPlugin({ | ||
cssProcessorOptions: { | ||
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: | ||
process.env.NODE_ENV === 'testing' | ||
? 'index.html' | ||
: 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', | ||
serviceWorkerLoader: `<script>${loadMinified( | ||
path.join(__dirname, './service-worker-prod.js') | ||
)}</script>` | ||
}), | ||
// keep module.id stable when vender modules does not change | ||
new webpack.HashedModuleIdsPlugin(), | ||
// split vendor js into its own file | ||
new webpack.optimize.CommonsChunkPlugin({ | ||
name: 'vendor', | ||
minChunks: function(module, count) { | ||
// 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', | ||
chunks: ['vendor'] | ||
}), | ||
// copy custom static assets | ||
new CopyWebpackPlugin([ | ||
{ | ||
from: path.resolve(__dirname, '../static'), | ||
to: config.build.assetsSubDirectory, | ||
ignore: ['.*'] | ||
} | ||
]), | ||
new SWPrecacheWebpackPlugin({ | ||
cacheId: 'vue-pwa', | ||
filename: 'service-worker.js', | ||
staticFileGlobs: ['dist/**/*.{js,html,css}'], | ||
minify: true, | ||
stripPrefix: 'dist', | ||
stripPrefixMulti: { | ||
'dist/demo.html': '/demo/' | ||
} | ||
}) | ||
] | ||
}); | ||
if (config.build.productionGzip) { | ||
var CompressionWebpackPlugin = require('compression-webpack-plugin') | ||
var 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 | ||
}) | ||
) | ||
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) { | ||
var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin | ||
webpackConfig.plugins.push(new BundleAnalyzerPlugin()) | ||
var BundleAnalyzerPlugin = require('webpack-bundle-analyzer') | ||
.BundleAnalyzerPlugin; | ||
webpackConfig.plugins.push(new BundleAnalyzerPlugin()); | ||
} | ||
module.exports = webpackConfig | ||
module.exports = webpackConfig; |
@@ -9,4 +9,4 @@ // see http://vuejs-templates.github.io/webpack for documentation. | ||
assetsRoot: path.resolve(__dirname, '../dist'), | ||
assetsSubDirectory: 'demo', | ||
assetsPublicPath: './', | ||
assetsSubDirectory: 'demo/', | ||
assetsPublicPath: '/', | ||
productionSourceMap: true, | ||
@@ -13,0 +13,0 @@ // Gzip off by default as many popular static hosts such as |
{ | ||
"name": "@58fe/v5", | ||
"version": "1.5.2", | ||
"version": "1.5.3", | ||
"main": "src/index.js", | ||
@@ -96,2 +96,4 @@ "description": "vue components", | ||
"sinon-chai": "^2.8.0", | ||
"sw-precache-webpack-plugin": "^0.11.4", | ||
"uglify-es": "^3.3.9", | ||
"url-loader": "^0.5.8", | ||
@@ -98,0 +100,0 @@ "validate-commit-msg": "^2.14.0", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
186412
103
3446
71
19