Skip to content

Commit ca3c780

Browse files
authored
Merge pull request #56 from mpvue/feature/smartprograme-build
update: 百度小程序build关闭jsuglify,生成 .frameworkinfo 文件记录当前mpvue版本信息
2 parents 1081232 + e31a733 commit ca3c780

File tree

6 files changed

+48
-5
lines changed

6 files changed

+48
-5
lines changed

template/.eslintrc.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@ module.exports = {
4444
// don't require .vue extension when importing
4545
'import/extensions': ['error', 'always', {
4646
'js': 'never',
47-
'vue': 'never'
47+
'vue': 'never',
48+
'json': 'never'
49+
}],
50+
'import/no-unresolved': [2, {
51+
'caseSensitive': false
4852
}],
4953
// allow optionalDependencies
5054
'import/no-extraneous-dependencies': ['error', {

template/build/build.js

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var chalk = require('chalk')
1010
var webpack = require('webpack')
1111
var config = require('../config')
1212
var webpackConfig = require('./webpack.prod.conf')
13+
var utils = require('./utils')
1314

1415
var spinner = ora('building for production...')
1516
spinner.start()
@@ -19,6 +20,9 @@ rm(path.join(config.build.assetsRoot, '*'), err => {
1920
webpack(webpackConfig, function (err, stats) {
2021
spinner.stop()
2122
if (err) throw err
23+
if (process.env.PLATFORM === 'swan') {
24+
utils.writeFrameworkinfo()
25+
}
2226
process.stdout.write(stats.toString({
2327
colors: true,
2428
modules: false,

template/build/dev-server.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var portfinder = require('portfinder')
1515
var webpackConfig = {{#if_or unit e2e}}(process.env.NODE_ENV === 'testing' || process.env.NODE_ENV === 'production')
1616
? require('./webpack.prod.conf')
1717
: {{/if_or}}require('./webpack.dev.conf')
18+
var utils = require('./utils')
1819

1920
// default port where dev server listens for incoming traffic
2021
var port = process.env.PORT || config.dev.port
@@ -25,7 +26,12 @@ var autoOpenBrowser = !!config.dev.autoOpenBrowser
2526
var proxyTable = config.dev.proxyTable
2627

2728
var app = express()
28-
var compiler = webpack(webpackConfig)
29+
var compiler = webpack(webpackConfig, function (err, stats) {
30+
if (err) throw err
31+
if (process.env.PLATFORM === 'swan') {
32+
utils.writeFrameworkinfo()
33+
}
34+
})
2935

3036
// var devMiddleware = require('webpack-dev-middleware')(compiler, {
3137
// publicPath: webpackConfig.output.publicPath,

template/build/utils.js

+24
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
var path = require('path')
2+
var fs = require('fs')
23
var config = require('../config')
34
var ExtractTextPlugin = require('extract-text-webpack-plugin')
5+
var mpvueInfo = require('../node_modules/mpvue/package.json')
6+
var packageInfo = require('../package.json')
47

58
exports.assetsPath = function (_path) {
69
var assetsSubDirectory = process.env.NODE_ENV === 'production'
@@ -85,3 +88,24 @@ exports.styleLoaders = function (options) {
8588
}
8689
return output
8790
}
91+
92+
exports.writeFrameworkinfo = function () {
93+
var buildInfo = {
94+
toolName: mpvueInfo.name,
95+
toolFrameWorkVersion: mpvueInfo.version,
96+
toolCliVersion: packageInfo.mpvueTemplateProjectVersion || '',
97+
createTime: Date.now()
98+
}
99+
100+
var content = JSON.stringify(buildInfo)
101+
var fileName = '.frameworkinfo'
102+
var rootDir = path.resolve(__dirname, `.././${fileName}`)
103+
var distDir = path.resolve(config.build.assetsRoot, `./${fileName}`)
104+
105+
fs.writeFile(rootDir, content, 'utf8', function (err) {
106+
if (err) throw err
107+
})
108+
fs.writeFile(distDir, content, 'utf8', function (err) {
109+
if (err) throw err
110+
})
111+
}

template/build/webpack.prod.conf.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ var webpackConfig = merge(baseWebpackConfig, {
3535
new webpack.DefinePlugin({
3636
'process.env': env
3737
}),
38-
new UglifyJsPlugin({
39-
sourceMap: true
40-
}),
4138
// extract css into its own file
4239
new ExtractTextPlugin({
4340
// filename: utils.assetsPath('[name].[contenthash].css')
@@ -116,4 +113,11 @@ if (config.build.bundleAnalyzerReport) {
116113
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
117114
}
118115

116+
var useUglifyJs = process.env.PLATFORM !== 'swan'
117+
if (useUglifyJs) {
118+
webpackConfig.plugins.push(new UglifyJsPlugin({
119+
sourceMap: true
120+
}))
121+
}
122+
119123
module.exports = webpackConfig

template/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"name": "{{ name }}",
33
"version": "1.0.0",
4+
"mpvueTemplateProjectVersion": "0.0.1",
45
"description": "{{ description }}",
56
"author": "{{ author }}",
67
"private": true,

0 commit comments

Comments
 (0)