diff --git a/packages/shims-node.d.ts b/packages/shims-node.d.ts index 6cd5e1bd5db78d3a95bd5a6d735739a253c91286..0bb241a8f0b6436b7e402a5eb09ac2cbd00389eb 100644 --- a/packages/shims-node.d.ts +++ b/packages/shims-node.d.ts @@ -9,6 +9,5 @@ declare namespace NodeJS { UNI_CLI_CONTEXT: string UNI_COMPILER_VERSION: string UNI_HBUILDERX_PLUGINS: string - UNI_NVUE_COMPILER: 'uni-app' | 'weex' } } diff --git a/packages/uni-app-vite/dist/plugin/configResolved.js b/packages/uni-app-vite/dist/plugin/configResolved.js index ffee16f40637b7658105b3deca273f6d75f78b65..096fdb71330756db55a6fa3c71b1f15c0a30a5f4 100644 --- a/packages/uni-app-vite/dist/plugin/configResolved.js +++ b/packages/uni-app-vite/dist/plugin/configResolved.js @@ -1,17 +1,9 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.configResolved = void 0; -const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const asset_1 = require("../plugins/vitejs/plugins/asset"); const css_1 = require("../plugins/vitejs/plugins/css"); const configResolved = (config) => { - const manifestJson = uni_cli_shared_1.parseManifestJsonOnce(process.env.UNI_INPUT_DIR); - if (uni_cli_shared_1.getNVueCompiler(manifestJson) === 'uni-app') { - process.env.UNI_USING_NVUE_COMPILER = 'uni-app'; - } - if (uni_cli_shared_1.getNVueStyleCompiler(manifestJson) === 'uni-app') { - process.env.UNI_USING_NVUE_STYLE_COMPILER = 'uni-app'; - } if (process.env.UNI_APP_CODE_SPLITING) { initCodeSpliting(config); } diff --git a/packages/uni-app-vite/src/plugin/configResolved.ts b/packages/uni-app-vite/src/plugin/configResolved.ts index 53e202e5869d68369d6bf4c63ef2f63c53b2e369..663ae565d28e1339ecce82b17570bbf63c43d3ae 100644 --- a/packages/uni-app-vite/src/plugin/configResolved.ts +++ b/packages/uni-app-vite/src/plugin/configResolved.ts @@ -1,21 +1,9 @@ import { Plugin, ResolvedConfig } from 'vite' -import { - parseManifestJsonOnce, - getNVueCompiler, - getNVueStyleCompiler, -} from '@dcloudio/uni-cli-shared' import { assetPlugin } from '../plugins/vitejs/plugins/asset' import { cssPlugin, cssPostPlugin } from '../plugins/vitejs/plugins/css' export const configResolved: Plugin['configResolved'] = (config) => { - const manifestJson = parseManifestJsonOnce(process.env.UNI_INPUT_DIR) - if (getNVueCompiler(manifestJson) === 'uni-app') { - process.env.UNI_USING_NVUE_COMPILER = 'uni-app' - } - if (getNVueStyleCompiler(manifestJson) === 'uni-app') { - process.env.UNI_USING_NVUE_STYLE_COMPILER = 'uni-app' - } if (process.env.UNI_APP_CODE_SPLITING) { initCodeSpliting(config as ResolvedConfig) } else { diff --git a/packages/uni-cli-nvue/dist/types.js b/packages/uni-cli-nvue/dist/types.js new file mode 100644 index 0000000000000000000000000000000000000000..3918c74e446336be4151ea3bdad00f4d9e6df47a --- /dev/null +++ b/packages/uni-cli-nvue/dist/types.js @@ -0,0 +1 @@ +"use strict"; diff --git a/packages/uni-cli-nvue/dist/utils/env.js b/packages/uni-cli-nvue/dist/utils/env.js new file mode 100644 index 0000000000000000000000000000000000000000..c72cac70ad10555ea8e8d184dea5ff3efd55c9d8 --- /dev/null +++ b/packages/uni-cli-nvue/dist/utils/env.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.initEnv = void 0; +function initEnv(options) { + if (options.styleCompiler === 'uni-app') { + process.env.UNI_NVUE_STYLE_COMPILER = 'uni-app'; + } +} +exports.initEnv = initEnv; diff --git a/packages/uni-cli-nvue/dist/webpack/config/index.js b/packages/uni-cli-nvue/dist/webpack/config/index.js index f094257ebc2a92f5d29a06fece2df1b328c4d9a9..d0583be08a6453235e8fcb4c7d380f2dcb1bd848 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/index.js +++ b/packages/uni-cli-nvue/dist/webpack/config/index.js @@ -5,7 +5,8 @@ const optimization_1 = require("./optimization"); const output_1 = require("./output"); const module_1 = require("./module"); const plugins_1 = require("./plugins"); -function createConfig(mode) { +const resolve_1 = require("./resolve"); +function createConfig(mode, options) { return { mode: mode, devtool: false, @@ -16,9 +17,10 @@ function createConfig(mode) { externals: { vue: 'Vue', }, + module: module_1.createModule(options), optimization: optimization_1.createOptimization(), output: output_1.createOutput(), - module: module_1.createModule(), + resolve: resolve_1.createResolve(), plugins: plugins_1.createPlugins(), }; } diff --git a/packages/uni-cli-nvue/dist/webpack/config/module/index.js b/packages/uni-cli-nvue/dist/webpack/config/module/index.js index fb5103deee547cb6bac042843f4d658721dd3693..9e4db19a7317b9f8dd7db8d19f461beff73f9832 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/module/index.js +++ b/packages/uni-cli-nvue/dist/webpack/config/module/index.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.createModule = void 0; const rules_1 = require("./rules"); -function createModule() { +function createModule(options) { return { - rules: rules_1.createRules(), + rules: rules_1.createRules(options), }; } exports.createModule = createModule; diff --git a/packages/uni-cli-nvue/dist/webpack/config/module/rules/babelLoader.js b/packages/uni-cli-nvue/dist/webpack/config/module/rules/babelLoader.js index b6f85e5d0a0950201a178bfd60c3e3b3e9e27cab..c4b0ab51aefa306c318930d7a3181b65666479d5 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/module/rules/babelLoader.js +++ b/packages/uni-cli-nvue/dist/webpack/config/module/rules/babelLoader.js @@ -1,6 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createBabelLoader = void 0; +const loader_1 = require("../../../loader"); +const preprocessLoader = { + loader: loader_1.resolveLoader('preprocess'), + options: { + type: ['js'], + }, +}; function createBabelLoader() { return { test: /\.js$/, @@ -11,6 +18,7 @@ function createBabelLoader() { babelrc: false, }, }, + preprocessLoader, ], }; } diff --git a/packages/uni-cli-nvue/dist/webpack/config/module/rules/cssLoader/index.js b/packages/uni-cli-nvue/dist/webpack/config/module/rules/cssLoader/index.js index f46e6bb071c5a403ac989724360f6f81209644f6..d7511281bd9bb9dd12a44c74be05b829bd3a252a 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/module/rules/cssLoader/index.js +++ b/packages/uni-cli-nvue/dist/webpack/config/module/rules/cssLoader/index.js @@ -6,24 +6,24 @@ function createCssLoaders() { return [ { test: /\.css$/, - oneOf: oneOf_1.createOneOf() + oneOf: oneOf_1.createOneOf(), }, { test: /\.scss$/, - oneOf: oneOf_1.createOneOf(scssLoader) + oneOf: oneOf_1.createOneOf(scssLoader), }, { test: /\.sass$/, - oneOf: oneOf_1.createOneOf(sassLoader) + oneOf: oneOf_1.createOneOf(sassLoader), }, { test: /\.less$/, - oneOf: oneOf_1.createOneOf(lessLoader) + oneOf: oneOf_1.createOneOf(lessLoader), }, { test: /\.styl(us)?$/, - oneOf: oneOf_1.createOneOf(stylusLoader) - } + oneOf: oneOf_1.createOneOf(stylusLoader), + }, ]; } exports.createCssLoaders = createCssLoaders; @@ -33,9 +33,9 @@ const scssLoader = { sourceMap: false, additionalData: '@import "@/uni.scss";', sassOptions: { - outputStyle: 'expanded' - } - } + outputStyle: 'expanded', + }, + }, }; const sassLoader = { loader: require.resolve('sass-loader'), @@ -44,20 +44,20 @@ const sassLoader = { additionalData: '@import "@/uni.sass"', sassOptions: { outputStyle: 'expanded', - indentedSyntax: true - } - } + indentedSyntax: true, + }, + }, }; const lessLoader = { loader: require.resolve('less-loader'), options: { - sourceMap: false - } + sourceMap: false, + }, }; const stylusLoader = { loader: require.resolve('stylus-loader'), options: { sourceMap: false, - preferPathResolver: 'webpack' - } + preferPathResolver: 'webpack', + }, }; diff --git a/packages/uni-cli-nvue/dist/webpack/config/module/rules/cssLoader/oneOf.js b/packages/uni-cli-nvue/dist/webpack/config/module/rules/cssLoader/oneOf.js index 06f71eaad361243bf77246f7dac49183da93ff3f..a888b6c46a77291e012962add9e1daead334e7d0 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/module/rules/cssLoader/oneOf.js +++ b/packages/uni-cli-nvue/dist/webpack/config/module/rules/cssLoader/oneOf.js @@ -7,7 +7,12 @@ exports.createOneOf = void 0; const path_1 = __importDefault(require("path")); const loader_1 = require("../../../../loader"); const styleLoader = { loader: loader_1.resolveLoader('style') }; -const preprocessLoader = { loader: loader_1.resolveLoader('preprocess') }; +const preprocessLoader = { + loader: loader_1.resolveLoader('preprocess'), + options: { + type: ['js'], + }, +}; const postcssLoader = { loader: require.resolve('postcss-loader'), options: { @@ -27,11 +32,11 @@ const postcssLoader = { return path_1.default.resolve(process.env.UNI_INPUT_DIR, id.substr(1)); } return id; - } - }) - ] - } - } + }, + }), + ], + }, + }, }; function createOneOf(preLoader) { const use = [styleLoader, preprocessLoader]; @@ -42,11 +47,11 @@ function createOneOf(preLoader) { return [ { resourceQuery: /\?vue/, - use + use, }, { - use - } + use, + }, ]; } exports.createOneOf = createOneOf; diff --git a/packages/uni-cli-nvue/dist/webpack/config/module/rules/index.js b/packages/uni-cli-nvue/dist/webpack/config/module/rules/index.js index 74a4c60037e5685420457174d99971d087621c39..f60bbfff6763f86f3062ee5278e9a370dd6b4c18 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/module/rules/index.js +++ b/packages/uni-cli-nvue/dist/webpack/config/module/rules/index.js @@ -4,7 +4,7 @@ exports.createRules = void 0; const babelLoader_1 = require("./babelLoader"); const cssLoader_1 = require("./cssLoader"); const vueLoader_1 = require("./vueLoader"); -function createRules() { - return [vueLoader_1.createVueLoader(), babelLoader_1.createBabelLoader(), ...cssLoader_1.createCssLoaders()]; +function createRules(options) { + return [vueLoader_1.createVueLoader(options), babelLoader_1.createBabelLoader(), ...cssLoader_1.createCssLoaders()]; } exports.createRules = createRules; diff --git a/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/compilerOptions/index.js b/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/compilerOptions/index.js index c05f03a69fdc67592168c85a00719f1adf451414..16cecd814c6491e6d39848ed7523a3d6c645fdbc 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/compilerOptions/index.js +++ b/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/compilerOptions/index.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.createCompilerOptions = void 0; const modules_1 = require("./modules"); -function createCompilerOptions() { +function createCompilerOptions(options) { return { - modules: modules_1.createModules(), + modules: modules_1.createModules(options), }; } exports.createCompilerOptions = createCompilerOptions; diff --git a/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/compilerOptions/modules/index.js b/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/compilerOptions/modules/index.js index 7496c742acedb19a62f72fcf859328f476f89774..e8e083993c7a7d23e9dff6814811f65edd4c14b5 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/compilerOptions/modules/index.js +++ b/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/compilerOptions/modules/index.js @@ -6,10 +6,10 @@ const boolAttr_1 = require("./boolAttr"); const easycom_1 = require("./easycom"); const renderWhole_1 = require("./renderWhole"); const tags_1 = require("./tags"); -function createModules() { +function createModules(options) { // 先处理 easycom const modules = [easycom_1.createEasycomModule(), renderWhole_1.createRenderWholeModule()]; - if (process.env.UNI_NVUE_COMPILER === 'uni-app') { + if (options.compiler === 'uni-app') { modules.push(tags_1.createTagsModule()); } modules.push(assetUrl_1.createAssetUrlModule()); diff --git a/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/index.js b/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/index.js index 1c8a37fb9888addcc3425c8ea305ea32135b0084..b3a5ea7833863c36c8e65fc172d1dd7e3b46eea8 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/index.js +++ b/packages/uni-cli-nvue/dist/webpack/config/module/rules/vueLoader/index.js @@ -6,7 +6,14 @@ const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const compilerOptions_1 = require("./compilerOptions"); const utils_1 = require("../../../../../utils"); const easycom_1 = require("./easycom"); -function createVueLoader() { +const loader_1 = require("../../../../loader"); +const preprocessLoader = { + loader: loader_1.resolveLoader('preprocess'), + options: { + type: ['js', 'html'], + }, +}; +function createVueLoader(options) { uni_cli_shared_1.initEasycomsOnce(process.env.UNI_INPUT_DIR, process.env.UNI_PLATFORM); return { test: [/\.nvue(\?[^?]+)?$/, /\.vue(\?[^?]+)?$/], @@ -16,9 +23,10 @@ function createVueLoader() { options: { hotReload: false, compiler: createCompiler(), - compilerOptions: compilerOptions_1.createCompilerOptions(), + compilerOptions: compilerOptions_1.createCompilerOptions(options), }, }, + preprocessLoader, ], }; } diff --git a/packages/uni-cli-nvue/dist/webpack/config/optimization.js b/packages/uni-cli-nvue/dist/webpack/config/optimization.js index 6d977d2bcac6525de84c8a111d99f57e3b3ce011..3f0566c51cbd6758fee0e03abe94f35e04ae0b09 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/optimization.js +++ b/packages/uni-cli-nvue/dist/webpack/config/optimization.js @@ -8,6 +8,7 @@ const terser_webpack_plugin_1 = __importDefault(require("terser-webpack-plugin") function createOptimization() { return { nodeEnv: false, + moduleIds: 'deterministic', minimizer: [ new terser_webpack_plugin_1.default({ terserOptions: { diff --git a/packages/uni-cli-nvue/dist/webpack/config/plugins/banner.js b/packages/uni-cli-nvue/dist/webpack/config/plugins/banner.js index 6409bf8b36256cfb3ec6ff17420e61526b6bcc83..0b147ef5fad5b2329923ac9e1fc16c064dbc86b2 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/plugins/banner.js +++ b/packages/uni-cli-nvue/dist/webpack/config/plugins/banner.js @@ -1,12 +1,13 @@ "use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.createBannerPlugin = void 0; -const webpack_1 = require("webpack"); +const BannerPlugin_1 = __importDefault(require("../../plugin/BannerPlugin")); function createBannerPlugin() { - return new webpack_1.BannerPlugin({ + return new BannerPlugin_1.default({ banner: '"use weex:vue";', - raw: true, - exclude: 'Vue', }); } exports.createBannerPlugin = createBannerPlugin; diff --git a/packages/uni-cli-nvue/dist/webpack/config/resolve.js b/packages/uni-cli-nvue/dist/webpack/config/resolve.js index d6db08bbcb7ae1cb7d6396cce943d428cc9fd539..e18043493ca7f7444b9b2d1f8a7c48cfb8b0910d 100644 --- a/packages/uni-cli-nvue/dist/webpack/config/resolve.js +++ b/packages/uni-cli-nvue/dist/webpack/config/resolve.js @@ -3,30 +3,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.resolve = void 0; +exports.createResolve = void 0; const path_1 = __importDefault(require("path")); -const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); -const inputDir = process.env.UNI_INPUT_DIR; -exports.resolve = { - extensions: ['.js', '.nvue', '.vue', '.json'], - alias: { - '@': inputDir, - 'uni-pages': path_1.default.resolve(inputDir, 'pages.json'), - '@dcloudio/uni-stat': require.resolve('@dcloudio/uni-stat'), - 'uni-app-style': uni_cli_shared_1.resolveMainPathOnce(inputDir) + - '?' + - JSON.stringify({ - type: 'appStyle', - }), - 'uni-stat-config': path_1.default.resolve(inputDir, 'pages.json') + - '?' + - JSON.stringify({ - type: 'stat', - }), - }, - modules: [ - 'node_modules', - path_1.default.resolve(process.env.UNI_CLI_CONTEXT, 'node_modules'), - path_1.default.resolve(inputDir, 'node_modules'), - ], -}; +// import { resolveMainPathOnce } from '@dcloudio/uni-cli-shared' +function createResolve() { + const inputDir = process.env.UNI_INPUT_DIR; + return { + extensions: ['.js', '.nvue', '.vue', '.json'], + alias: { + '@': inputDir, + // '@dcloudio/uni-stat': require.resolve('@dcloudio/uni-stat') + // 'uni-app-style': + // resolveMainPathOnce(inputDir) + + // '?' + + // JSON.stringify({ + // type: 'appStyle' + // }) + }, + modules: [ + 'node_modules', + path_1.default.resolve(process.env.UNI_CLI_CONTEXT, 'node_modules'), + path_1.default.resolve(inputDir, 'node_modules'), + ], + }; +} +exports.createResolve = createResolve; diff --git a/packages/uni-cli-nvue/dist/webpack/index.js b/packages/uni-cli-nvue/dist/webpack/index.js index 7f888207b2dbe45814c4ba57caccdd6a93d23194..4a2a8781dc3a75bae3601c85e3c2431ca9e534c2 100644 --- a/packages/uni-cli-nvue/dist/webpack/index.js +++ b/packages/uni-cli-nvue/dist/webpack/index.js @@ -8,11 +8,13 @@ const webpack_1 = __importDefault(require("webpack")); const uni_shared_1 = require("@dcloudio/uni-shared"); const config_1 = require("./config"); const alias_1 = require("./alias"); +const env_1 = require("../utils/env"); const initModuleAliasOnce = uni_shared_1.once(alias_1.initModuleAlias); -function runWebpack(mode) { +function runWebpack(mode, options) { + env_1.initEnv(options); initModuleAliasOnce(); return new Promise((resolve, reject) => { - webpack_1.default(config_1.createConfig(mode), (err, stats) => { + webpack_1.default(config_1.createConfig(mode, options), (err, stats) => { if (err) { return reject(err.stack || err); } @@ -31,11 +33,11 @@ function runWebpack(mode) { }); }); } -function runWebpackBuild() { - return runWebpack('production'); +function runWebpackBuild(options) { + return runWebpack('production', options); } exports.runWebpackBuild = runWebpackBuild; -function runWebpackDev() { - return runWebpack('development'); +function runWebpackDev(options) { + return runWebpack('development', options); } exports.runWebpackDev = runWebpackDev; diff --git a/packages/uni-cli-nvue/dist/webpack/loader/preprocess.js b/packages/uni-cli-nvue/dist/webpack/loader/preprocess.js index 815c7f13d22edf6477b0af36dd9485f90c76e20a..4f09243f444739441d56984ea5b05f530b51882b 100644 --- a/packages/uni-cli-nvue/dist/webpack/loader/preprocess.js +++ b/packages/uni-cli-nvue/dist/webpack/loader/preprocess.js @@ -23,13 +23,13 @@ function preprocessLoader(content, map) { function preContent(type, content) { switch (type) { case 'js': - return uni_cli_shared_1.preJs(content); + return uni_cli_shared_1.preNVueJs(content); case 'html': - return uni_cli_shared_1.preHtml(content); + return uni_cli_shared_1.preNVueHtml(content); case 'css': - return uni_cli_shared_1.preCss(content); + return uni_cli_shared_1.preNVueCss(content); case 'json': - return uni_cli_shared_1.preJson(content); + return uni_cli_shared_1.preNVueJson(content); } return content; } diff --git a/packages/uni-cli-nvue/dist/webpack/plugin/BannerPlugin.js b/packages/uni-cli-nvue/dist/webpack/plugin/BannerPlugin.js new file mode 100644 index 0000000000000000000000000000000000000000..2a2de3e3b7ff2d1deb9b51afbca6e340445cef69 --- /dev/null +++ b/packages/uni-cli-nvue/dist/webpack/plugin/BannerPlugin.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const webpack_1 = require("webpack"); +const webpack_sources_1 = require("webpack-sources"); +class BannerPlugin { + /** + * @param {BannerPluginArgument} options options object + */ + constructor(options) { + this.banner = () => options.banner; + } + /** + * Apply the plugin + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ + apply(compiler) { + const banner = this.banner; + compiler.hooks.compilation.tap('BannerPlugin', (compilation) => { + compilation.hooks.processAssets.tap({ + name: 'BannerPlugin', + stage: webpack_1.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER, + }, () => { + for (const chunk of compilation.chunks) { + if (!chunk.canBeInitial()) { + continue; + } + for (const file of chunk.files) { + const data = { + chunk, + filename: file, + }; + const comment = compilation.getPath(banner, data); + compilation.updateAsset(file, (old) => new webpack_sources_1.ConcatSource(comment, '\n', old)); + } + } + }); + }); + } +} +exports.default = BannerPlugin; diff --git a/packages/uni-cli-nvue/lib/@vue/component-compiler-utils/dist/stylePlugins/remove-scoped.js b/packages/uni-cli-nvue/lib/@vue/component-compiler-utils/dist/stylePlugins/remove-scoped.js index 3fa5556214c8aef2088e14d3224a9d68f4f19c66..aaf5617cdf336c7d9af45b01f67b74e15932ab55 100644 --- a/packages/uni-cli-nvue/lib/@vue/component-compiler-utils/dist/stylePlugins/remove-scoped.js +++ b/packages/uni-cli-nvue/lib/@vue/component-compiler-utils/dist/stylePlugins/remove-scoped.js @@ -1,61 +1,57 @@ "use strict"; -var __importStar = (this && this.__importStar) || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) - for (var k in mod) - if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; Object.defineProperty(exports, "__esModule", { value: true }); -const postcss = __importStar(require("postcss")); // postcss-selector-parser does have typings but it's problematic to work with. const selectorParser = require('postcss-selector-parser'); -exports.default = postcss.plugin('remove-scoped', (options) => (root) => { - root.each(function rewriteSelector(node) { - if (!node.selector) { - // handle media queries - if (node.type === 'atrule') { - if (node.name === 'media' || node.name === 'supports') { - node.each(rewriteSelector); - } - } - return; - } - node.selector = selectorParser((selectors) => { - selectors.each((selector) => { - let node = null; - // find the last child node to insert attribute selector - selector.each((n) => { - // ">>>" combinator - // and /deep/ alias for >>>, since >>> doesn't work in SASS - if (n.type === 'combinator' && - (n.value === '>>>' || n.value === '/deep/')) { - n.value = ' '; - n.spaces.before = n.spaces.after = ''; - return false; - } - // in newer versions of sass, /deep/ support is also dropped, so add a ::v-deep alias - if (n.type === 'pseudo' && n.value === '::v-deep') { - n.value = n.spaces.before = n.spaces.after = ''; - return false; - } - if (n.type !== 'pseudo' && n.type !== 'combinator') { - node = n; +exports.default = () => { + return { + postcssPlugin: 'remove-scoped', + Once (root) { + root.each(function rewriteSelector(node) { + if (!node.selector) { + // handle media queries + if (node.type === 'atrule') { + if (node.name === 'media' || node.name === 'supports') { + node.each(rewriteSelector); + } + } + return; } + node.selector = selectorParser((selectors) => { + selectors.each((selector) => { + let node = null; + // find the last child node to insert attribute selector + selector.each((n) => { + // ">>>" combinator + // and /deep/ alias for >>>, since >>> doesn't work in SASS + if (n.type === 'combinator' && + (n.value === '>>>' || n.value === '/deep/')) { + n.value = ' '; + n.spaces.before = n.spaces.after = ''; + return false; + } + // in newer versions of sass, /deep/ support is also dropped, so add a ::v-deep alias + if (n.type === 'pseudo' && n.value === '::v-deep') { + n.value = n.spaces.before = n.spaces.after = ''; + return false; + } + if (n.type !== 'pseudo' && n.type !== 'combinator') { + node = n; + } + }); + if (node) { + node.spaces.after = ''; + } else { + // For deep selectors & standalone pseudo selectors, + // the attribute selectors are prepended rather than appended. + // So all leading spaces must be eliminated to avoid problems. + selector.first.spaces.before = ''; + } + }); + }).processSync(node.selector); }); - if (node) { - node.spaces.after = ''; - } else { - // For deep selectors & standalone pseudo selectors, - // the attribute selectors are prepended rather than appended. - // So all leading spaces must be eliminated to avoid problems. - selector.first.spaces.before = ''; - } - }); - }).processSync(node.selector); - }); -}); + } + } +} + diff --git a/packages/uni-cli-nvue/lib/@vue/component-compiler-utils/dist/stylePlugins/scoped.js b/packages/uni-cli-nvue/lib/@vue/component-compiler-utils/dist/stylePlugins/scoped.js index 0d2fc1ac84b9d68491785ca97e9f164e700bee2f..f3a01afbd55afd9132e38e8e215a2fd11c1145a0 100644 --- a/packages/uni-cli-nvue/lib/@vue/component-compiler-utils/dist/stylePlugins/scoped.js +++ b/packages/uni-cli-nvue/lib/@vue/component-compiler-utils/dist/stylePlugins/scoped.js @@ -1,112 +1,110 @@ "use strict"; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; Object.defineProperty(exports, "__esModule", { value: true }); -const postcss = __importStar(require("postcss")); + // postcss-selector-parser does have typings but it's problematic to work with. const selectorParser = require('postcss-selector-parser'); -exports.default = postcss.plugin('add-id', (options) => (root) => { - const id = options; - const keyframes = Object.create(null); - root.each(function rewriteSelector(node) { - if (!node.selector) { - // handle media queries - if (node.type === 'atrule') { - if (node.name === 'media' || node.name === 'supports') { - node.each(rewriteSelector); - } - else if (/-?keyframes$/.test(node.name)) { - // register keyframes - keyframes[node.params] = node.params = node.params + '-' + id; - } - } - return; - } - node.selector = selectorParser((selectors) => { - selectors.each((selector) => { - let node = null; - // find the last child node to insert attribute selector - selector.each((n) => { - // ">>>" combinator - // and /deep/ alias for >>>, since >>> doesn't work in SASS - if (n.type === 'combinator' && - (n.value === '>>>' || n.value === '/deep/')) { - n.value = ' '; - n.spaces.before = n.spaces.after = ''; - return false; - } - // in newer versions of sass, /deep/ support is also dropped, so add a ::v-deep alias - if (n.type === 'pseudo' && n.value === '::v-deep') { - n.value = n.spaces.before = n.spaces.after = ''; - return false; - } - if (n.type !== 'pseudo' && n.type !== 'combinator') { - node = n; +exports.default = (options) => { + return { + postcssPlugin: 'add-id', + Once (root) { + const id = options; + const keyframes = Object.create(null); + root.each(function rewriteSelector(node) { + if (!node.selector) { + // handle media queries + if (node.type === 'atrule') { + if (node.name === 'media' || node.name === 'supports') { + node.each(rewriteSelector); + } + else if (/-?keyframes$/.test(node.name)) { + // register keyframes + keyframes[node.params] = node.params = node.params + '-' + id; + } } - }); - if (node) { - node.spaces.after = ''; - } - else { - // For deep selectors & standalone pseudo selectors, - // the attribute selectors are prepended rather than appended. - // So all leading spaces must be eliminated to avoid problems. - selector.first.spaces.before = ''; - } - // fixed by xxxxxx (h5,app-plus v3 平台继续使用 attribute,其他平台使用 className) - if( - process.env.UNI_PLATFORM === 'h5' || - ( - process.env.UNI_PLATFORM === 'app-plus' && - process.env.UNI_USING_V3 - ) - ){ - selector.insertAfter(node, selectorParser.attribute({ - attribute: id - })); - } else { - selector.insertAfter(node, selectorParser.className({ - value: id - })); + return; } + node.selector = selectorParser((selectors) => { + selectors.each((selector) => { + let node = null; + // find the last child node to insert attribute selector + selector.each((n) => { + // ">>>" combinator + // and /deep/ alias for >>>, since >>> doesn't work in SASS + if (n.type === 'combinator' && + (n.value === '>>>' || n.value === '/deep/')) { + n.value = ' '; + n.spaces.before = n.spaces.after = ''; + return false; + } + // in newer versions of sass, /deep/ support is also dropped, so add a ::v-deep alias + if (n.type === 'pseudo' && n.value === '::v-deep') { + n.value = n.spaces.before = n.spaces.after = ''; + return false; + } + if (n.type !== 'pseudo' && n.type !== 'combinator') { + node = n; + } + }); + if (node) { + node.spaces.after = ''; + } + else { + // For deep selectors & standalone pseudo selectors, + // the attribute selectors are prepended rather than appended. + // So all leading spaces must be eliminated to avoid problems. + selector.first.spaces.before = ''; + } + // fixed by xxxxxx (h5,app-plus v3 平台继续使用 attribute,其他平台使用 className) + if( + process.env.UNI_PLATFORM === 'h5' || + ( + process.env.UNI_PLATFORM === 'app-plus' && + process.env.UNI_USING_V3 + ) + ){ + selector.insertAfter(node, selectorParser.attribute({ + attribute: id + })); + } else { + selector.insertAfter(node, selectorParser.className({ + value: id + })); + } + }); + }).processSync(node.selector); }); - }).processSync(node.selector); - }); - // If keyframes are found in this