Skip to content

Commit

Permalink
Merge pull request #56 from mpvue/feature/smartprograme-build
Browse files Browse the repository at this point in the history
update: 百度小程序build关闭jsuglify,生成 .frameworkinfo 文件记录当前mpvue版本信息
  • Loading branch information
hucq committed Dec 28, 2018
2 parents 1081232 + e31a733 commit ca3c780
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 5 deletions.
6 changes: 5 additions & 1 deletion template/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,11 @@ module.exports = {
// don't require .vue extension when importing
'import/extensions': ['error', 'always', {
'js': 'never',
'vue': 'never'
'vue': 'never',
'json': 'never'
}],
'import/no-unresolved': [2, {
'caseSensitive': false
}],
// allow optionalDependencies
'import/no-extraneous-dependencies': ['error', {
Expand Down
4 changes: 4 additions & 0 deletions template/build/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ var chalk = require('chalk')
var webpack = require('webpack')
var config = require('../config')
var webpackConfig = require('./webpack.prod.conf')
var utils = require('./utils')

var spinner = ora('building for production...')
spinner.start()
Expand All @@ -19,6 +20,9 @@ rm(path.join(config.build.assetsRoot, '*'), err => {
webpack(webpackConfig, function (err, stats) {
spinner.stop()
if (err) throw err
if (process.env.PLATFORM === 'swan') {
utils.writeFrameworkinfo()
}
process.stdout.write(stats.toString({
colors: true,
modules: false,
Expand Down
8 changes: 7 additions & 1 deletion template/build/dev-server.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ var portfinder = require('portfinder')
var webpackConfig = {{#if_or unit e2e}}(process.env.NODE_ENV === 'testing' || process.env.NODE_ENV === 'production')
? require('./webpack.prod.conf')
: {{/if_or}}require('./webpack.dev.conf')
var utils = require('./utils')
// default port where dev server listens for incoming traffic
var port = process.env.PORT || config.dev.port
Expand All @@ -25,7 +26,12 @@ var autoOpenBrowser = !!config.dev.autoOpenBrowser
var proxyTable = config.dev.proxyTable
var app = express()
var compiler = webpack(webpackConfig)
var compiler = webpack(webpackConfig, function (err, stats) {
if (err) throw err
if (process.env.PLATFORM === 'swan') {
utils.writeFrameworkinfo()
}
})
// var devMiddleware = require('webpack-dev-middleware')(compiler, {
// publicPath: webpackConfig.output.publicPath,
Expand Down
24 changes: 24 additions & 0 deletions template/build/utils.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
var path = require('path')
var fs = require('fs')
var config = require('../config')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
var mpvueInfo = require('../node_modules/mpvue/package.json')
var packageInfo = require('../package.json')

exports.assetsPath = function (_path) {
var assetsSubDirectory = process.env.NODE_ENV === 'production'
Expand Down Expand Up @@ -85,3 +88,24 @@ exports.styleLoaders = function (options) {
}
return output
}

exports.writeFrameworkinfo = function () {
var buildInfo = {
toolName: mpvueInfo.name,
toolFrameWorkVersion: mpvueInfo.version,
toolCliVersion: packageInfo.mpvueTemplateProjectVersion || '',
createTime: Date.now()
}

var content = JSON.stringify(buildInfo)
var fileName = '.frameworkinfo'
var rootDir = path.resolve(__dirname, `.././${fileName}`)
var distDir = path.resolve(config.build.assetsRoot, `./${fileName}`)

fs.writeFile(rootDir, content, 'utf8', function (err) {
if (err) throw err
})
fs.writeFile(distDir, content, 'utf8', function (err) {
if (err) throw err
})
}
10 changes: 7 additions & 3 deletions template/build/webpack.prod.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,6 @@ var webpackConfig = merge(baseWebpackConfig, {
new webpack.DefinePlugin({
'process.env': env
}),
new UglifyJsPlugin({
sourceMap: true
}),
// extract css into its own file
new ExtractTextPlugin({
// filename: utils.assetsPath('[name].[contenthash].css')
Expand Down Expand Up @@ -116,4 +113,11 @@ if (config.build.bundleAnalyzerReport) {
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}

var useUglifyJs = process.env.PLATFORM !== 'swan'
if (useUglifyJs) {
webpackConfig.plugins.push(new UglifyJsPlugin({
sourceMap: true
}))
}

module.exports = webpackConfig
1 change: 1 addition & 0 deletions template/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "{{ name }}",
"version": "1.0.0",
"mpvueTemplateProjectVersion": "0.0.1",
"description": "{{ description }}",
"author": "{{ author }}",
"private": true,
Expand Down

0 comments on commit ca3c780

Please sign in to comment.