You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.5 KiB
40 lines
1.5 KiB
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.createNonAppGenerateBundle = exports.uniSubpackagePlugin = void 0; |
|
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); |
|
function uniSubpackagePlugin({ style: { extname }, }) { |
|
return { |
|
name: 'uni:mp-subpackage', |
|
enforce: 'post', |
|
generateBundle: createNonAppGenerateBundle(extname), |
|
}; |
|
} |
|
exports.uniSubpackagePlugin = uniSubpackagePlugin; |
|
function createNonAppGenerateBundle(extname) { |
|
return function generateBundle(_, bundle) { |
|
; |
|
['project.config.json', 'app.json'].forEach((name) => { |
|
delete bundle[name]; |
|
}); |
|
const appJsFile = 'app.js'; |
|
const appCssFile = 'app' + extname; |
|
Object.keys(bundle).forEach((name) => { |
|
if (!(0, uni_cli_shared_1.isMiniProgramPageFile)(name)) { |
|
return; |
|
} |
|
// 仅页面级 wxss 需要补充 app.wxss |
|
if (name.endsWith(extname)) { |
|
const cssFile = bundle[name]; |
|
cssFile.source = |
|
`@import "${(0, uni_cli_shared_1.relativeFile)(name, appCssFile)}";\n` + |
|
cssFile.source.toString(); |
|
} |
|
else if (name.endsWith('.js')) { |
|
const jsFile = bundle[name]; |
|
jsFile.code = |
|
`require('${(0, uni_cli_shared_1.relativeFile)(name, appJsFile)}');\n` + jsFile.code; |
|
} |
|
}); |
|
}; |
|
} |
|
exports.createNonAppGenerateBundle = createNonAppGenerateBundle;
|
|
|