forked from dcloudio/uni-app
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
34 changed files
with
779 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
const fs = require('fs') | ||
const del = require('del') | ||
const path = require('path') | ||
const copy = require('copy') | ||
const rollup = require('rollup') | ||
|
||
const genConfig = require('./rollup.config.qa') | ||
|
||
const filename = 'vue.' + (process.env.NODE_ENV === 'production' ? 'prod' : 'dev') + '.js' | ||
|
||
async function build () { | ||
const bridgeBundle = await rollup.rollup(genConfig('bridge')) | ||
const { | ||
output: bridgeOutput | ||
} = await bridgeBundle.generate({ | ||
format: 'iife' | ||
}) | ||
const bridgeCode = bridgeOutput[0].code | ||
const appBundle = await rollup.rollup(genConfig('app')) | ||
const { | ||
output: appOutput | ||
} = await appBundle.generate({ | ||
format: 'iife', | ||
banner: ` | ||
dsl.onInitApp(function({ | ||
inst, | ||
context, | ||
instRequireModule | ||
}) { | ||
if(!context.quickapp.dock.makeEvaluateBuildScript){ | ||
context.quickapp.dock.makeEvaluateBuildScript = args => args | ||
} | ||
const $app_require$ = instRequireModule; | ||
`, | ||
footer: ` | ||
});` | ||
}) | ||
const appCode = appOutput[0].code | ||
// const pageBundle = await rollup.rollup(genConfig('page')) | ||
// const { | ||
// output: pageOutput | ||
// } = await pageBundle.generate({ | ||
// format: 'iife', | ||
// banner: ` | ||
// dsl.onInitPage(function({ | ||
// $app_require$, | ||
// Vue | ||
// }) { | ||
// `, | ||
// footer: ` | ||
// });` | ||
// }) | ||
// const pageCode = pageOutput[0].code | ||
const vueCode = fs.readFileSync(path.resolve(__dirname, '../packages/uni-quickapp/lib/' + filename)) | ||
|
||
fs.writeFileSync( | ||
path.resolve(__dirname, '../packages/uni-quickapp/lib/dsls/' + filename), | ||
vueCode + bridgeCode + appCode, { | ||
encoding: 'utf8' | ||
} | ||
) | ||
|
||
if (process.env.NODE_ENV === 'production') { // 命令会执行dev,prod两次,仅prod时执行copy | ||
const componentsSrc = path.resolve(__dirname, '../src/platforms/quickapp/view/components/**/*') | ||
const componentsDest = path.resolve(__dirname, '../packages/uni-quickapp/lib/components') | ||
|
||
del.sync([componentsDest]) | ||
|
||
copy(componentsSrc, componentsDest, function (err, file) { | ||
if (err) { | ||
throw err | ||
} | ||
}) | ||
} | ||
} | ||
|
||
build() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
const path = require('path') | ||
const alias = require('rollup-plugin-alias') | ||
const replace = require('rollup-plugin-replace') | ||
const nodeResolve = require('rollup-plugin-node-resolve') | ||
const commonjs = require('rollup-plugin-commonjs') | ||
const terser = require('rollup-plugin-terser') | ||
const requireContext = require('../lib/rollup-plugin-require-context') | ||
|
||
process.env.UNI_PLATFORM = 'quickapp' | ||
|
||
const external = [] | ||
|
||
const resolve = dir => path.resolve(__dirname, '../', dir) | ||
|
||
function replaceModuleImport (str) { | ||
return str.replace( | ||
/require\s*\(\s*(['"])@([\w$_][\w$-.]*?)\1\)/gm, | ||
(e, r, p) => `$app_require$(${r}@app-module/${p}${r})` | ||
).replace( | ||
/import\s+([\w${}]+?)\s+from\s+(['"])@([\w$_][\w$-.]*?)\2/gm, | ||
(e, r, p, t) => `var ${r} = $app_require$(${p}@app-module/${t}${p})` | ||
) | ||
} | ||
|
||
const plugins = [{ | ||
name: 'replaceModuleImport', | ||
transform (source) { | ||
return { | ||
code: replaceModuleImport(source) | ||
} | ||
} | ||
}, | ||
alias({ | ||
'uni-core': resolve('src/core'), | ||
'uni-platform': resolve('src/platforms/' + process.env.UNI_PLATFORM), | ||
'uni-platforms': resolve('src/platforms'), | ||
'uni-shared': resolve('src/shared/index.js'), | ||
'uni-helpers': resolve('src/core/helpers'), | ||
'uni-invoke-api': resolve('src/platforms/quickapp/service/invoke-api'), | ||
'uni-service-api': resolve('src/platforms/quickapp/service/api'), | ||
'uni-api-protocol': resolve('src/core/helpers/protocol') | ||
}), | ||
nodeResolve(), | ||
requireContext(), | ||
commonjs(), | ||
replace({ | ||
__PLATFORM__: JSON.stringify(process.env.UNI_PLATFORM), | ||
__PLATFORM_TITLE__: '快应用' | ||
}) | ||
] | ||
|
||
// if (process.env.NODE_ENV === 'production') { | ||
plugins.push(terser.terser()) | ||
// } | ||
|
||
module.exports = function (type) { | ||
let input = '' | ||
|
||
if (type === 'bridge') { | ||
input = 'src/platforms/quickapp/runtime/bridge.js' | ||
} else if (type === 'app') { | ||
input = 'src/platforms/quickapp/runtime/app.js' | ||
} else if (type === 'page') { | ||
input = 'src/platforms/quickapp/runtime/page.js' | ||
} | ||
|
||
return { | ||
input, | ||
plugins, | ||
external | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.