diff --git a/packages/vue-cli-plugin-uni/commands/build.js b/packages/vue-cli-plugin-uni/commands/build.js index a390d3224da41e2af839ec49cb785f2c9d69b746..bf66955831cc9f20fcf5e1d6732f97ff8aef0c12 100644 --- a/packages/vue-cli-plugin-uni/commands/build.js +++ b/packages/vue-cli-plugin-uni/commands/build.js @@ -34,7 +34,7 @@ module.exports = (api, options) => { '--auto-host': 'specify automator host', '--auto-port': 'specify automator port', '--subpackage': 'specify subpackage', - '--plugin': 'specify plugin', + '--plugin': 'specify mp plugin', '--manifest': 'build manifest.json' } }, async (args) => { @@ -244,17 +244,19 @@ function analysisPluginDir () { const pluginJson = parseJson(fs.readFileSync(pluginJsonPath, 'utf-8'), true) // main 入口文件是否存在 - process.env.UNI_MP_PLUGIN_MAIN = pluginJson.main - const UNI_MP_PLUGIN_MAIN = process.env.UNI_MP_PLUGIN_MAIN - const mainFilePath = path.resolve(process.env.UNI_INPUT_DIR, UNI_MP_PLUGIN_MAIN) - - if (UNI_MP_PLUGIN_MAIN && !fs.pathExistsSync(mainFilePath)) { - console.log() - console.error(uniI18n.__('pluginUni.entryDileNoExistsCheckAfterRetry', { - 0: UNI_MP_PLUGIN_MAIN - })) - console.log() - process.exit(0) + if (pluginJson.main) { + process.env.UNI_MP_PLUGIN_MAIN = pluginJson.main + const UNI_MP_PLUGIN_MAIN = process.env.UNI_MP_PLUGIN_MAIN + const mainFilePath = path.resolve(process.env.UNI_INPUT_DIR, UNI_MP_PLUGIN_MAIN) + + if (UNI_MP_PLUGIN_MAIN && !fs.pathExistsSync(mainFilePath)) { + console.log() + console.error(uniI18n.__('pluginUni.entryDileNoExistsCheckAfterRetry', { + 0: UNI_MP_PLUGIN_MAIN + })) + console.log() + process.exit(0) + } } } diff --git a/packages/vue-cli-plugin-uni/lib/mp/index.js b/packages/vue-cli-plugin-uni/lib/mp/index.js index d37a80a2b40b8acc2ad0ad53d2fc8a879c5217fd..905b89a32e9127154caf51d0f7d994cc1d48505b 100644 --- a/packages/vue-cli-plugin-uni/lib/mp/index.js +++ b/packages/vue-cli-plugin-uni/lib/mp/index.js @@ -178,11 +178,12 @@ module.exports = { { const globalEnv = process.env.UNI_PLATFORM === 'mp-alipay' ? 'my' : 'wx'; - [].concat(process.env.UNI_MP_PLUGIN ? process.env.UNI_MP_PLUGIN_MAIN : JSON.parse(process.env - .UNI_MP_PLUGIN_EXPORT)) - .forEach(fileName => addToUniEntry(fileName)) - beforeCode += - `${globalEnv}.__webpack_require_${(process.env.UNI_MP_PLUGIN || 'UNI_MP_PLUGIN').replace(/-/g, '_')}__ = __webpack_require__;` + [].concat( + process.env.UNI_MP_PLUGIN + ? process.env.UNI_MP_PLUGIN_MAIN + : JSON.parse(process.env.UNI_MP_PLUGIN_EXPORT) + ).forEach(fileName => addToUniEntry(fileName)) + beforeCode += `${globalEnv}.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;` } const alias = { // 仅 mp-weixin @@ -319,4 +320,4 @@ module.exports = { webpackConfig.plugins.delete('preload') webpackConfig.plugins.delete('prefetch') } -} +} diff --git a/packages/webpack-uni-mp-loader/lib/plugin/index-new.js b/packages/webpack-uni-mp-loader/lib/plugin/index-new.js index ddc26facbe43a2ffd5bb1fcd687aa0efc6c9775f..1859383995a50de53ec3cd16c063976afd941de4 100644 --- a/packages/webpack-uni-mp-loader/lib/plugin/index-new.js +++ b/packages/webpack-uni-mp-loader/lib/plugin/index-new.js @@ -76,22 +76,22 @@ function addMPPluginRequire (compilation) { const needProcess = process.env.UNI_MP_PLUGIN ? name === UNI_MP_PLUGIN_MAIN : UNI_MP_PLUGIN_EXPORT.includes(name) if (needProcess) { const modules = compilation.modules - + const orignalSource = compilation.assets[name].source() + const globalEnv = process.env.UNI_PLATFORM === 'mp-alipay' ? 'my' : 'wx'; const filePath = normalizePath(path.resolve(process.env.UNI_INPUT_DIR, name)) - const uniModuleId = modules.find(module => module.resource && normalizePath(module.resource) === filePath).id + const newlineIndex = orignalSource.lastIndexOf('\n') - const newlineIndex = compilation.assets[name].source().lastIndexOf('\n') - - const source = compilation.assets[name].source().substring(0, newlineIndex) + - `\nmodule.exports = ${process.env.UNI_PLATFORM === 'mp-alipay' ? 'my' : 'wx'}.__webpack_require_${(process.env.UNI_MP_PLUGIN || 'UNI_MP_PLUGIN').replace(/-/g, '_')}__('${uniModuleId}');\n` + - compilation.assets[name].source().substring(newlineIndex + 1) + const source = + orignalSource.substring(0, newlineIndex) + + `\nmodule.exports = ${globalEnv}.__webpack_require_UNI_MP_PLUGIN__('${uniModuleId}');\n` + + orignalSource.substring(newlineIndex + 1) compilation.assets[name] = { - size () { + size() { return Buffer.byteLength(source, 'utf8') }, - source () { + source() { return source } }