From 2424768808e493ae1b59860ccb20a7c96d72d20a Mon Sep 17 00:00:00 2001 From: Evan You Date: Sat, 27 Mar 2021 12:33:52 -0400 Subject: [PATCH] build: make compiler-sfc global build work --- package.json | 5 +++-- packages/compiler-sfc/README.md | 4 ---- rollup.config.js | 11 +++------- yarn.lock | 36 ++++++++++++++++++++++++--------- 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 97f19f5a..1e94678b 100644 --- a/package.json +++ b/package.json @@ -43,9 +43,9 @@ "devDependencies": { "@babel/types": "^7.12.0", "@microsoft/api-extractor": "^7.12.1", - "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-commonjs": "^18.0.0", "@rollup/plugin-json": "^4.0.0", - "@rollup/plugin-node-resolve": "^11.0.0", + "@rollup/plugin-node-resolve": "^11.2.1", "@rollup/plugin-replace": "^2.3.4", "@types/hash-sum": "^1.0.0", "@types/jest": "^26.0.16", @@ -69,6 +69,7 @@ "rollup": "~2.38.5", "rollup-plugin-node-builtins": "^2.1.2", "rollup-plugin-node-globals": "^1.4.0", + "rollup-plugin-node-polyfills": "^0.2.1", "rollup-plugin-terser": "^7.0.2", "rollup-plugin-typescript2": "^0.27.2", "semver": "^7.3.2", diff --git a/packages/compiler-sfc/README.md b/packages/compiler-sfc/README.md index 2a855122..1d6d8db4 100644 --- a/packages/compiler-sfc/README.md +++ b/packages/compiler-sfc/README.md @@ -4,10 +4,6 @@ This package contains lower level utilities that you can use if you are writing a plugin / transform for a bundler or module system that compiles Vue Single File Components (SFCs) into JavaScript. It is used in [vue-loader](https://github.com/vuejs/vue-loader), [rollup-plugin-vue](https://github.com/vuejs/rollup-plugin-vue) and [vite](https://github.com/vitejs/vite). -## Browser Build Notes - -The browser build relies on a browser-bundled build of `postcss` to be available under the global `postcss` (since it can't be properly bundled by Rollup). - ## API The API is intentionally low-level due to the various considerations when integrating Vue SFCs in a build system: diff --git a/rollup.config.js b/rollup.config.js index 965be4e3..dead7117 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -119,9 +119,7 @@ function createConfig(format, output, plugins = []) { const external = isGlobalBuild || isBrowserESMBuild ? packageOptions.enableNonBrowserBranches - ? // externalize postcss for @vue/compiler-sfc - // because @rollup/plugin-commonjs cannot bundle it properly - ['postcss'] + ? [] : // normal browser builds - non-browser only imports are tree-shaken, // they are only listed here to suppress warnings. ['source-map', '@babel/parser', 'estree-walker'] @@ -141,14 +139,11 @@ function createConfig(format, output, plugins = []) { const nodePlugins = packageOptions.enableNonBrowserBranches && format !== 'cjs' ? [ - require('@rollup/plugin-node-resolve').nodeResolve({ - preferBuiltins: true - }), require('@rollup/plugin-commonjs')({ sourceMap: false }), - require('rollup-plugin-node-builtins')(), - require('rollup-plugin-node-globals')() + require('rollup-plugin-node-polyfills')(), + require('@rollup/plugin-node-resolve').nodeResolve() ] : [] diff --git a/yarn.lock b/yarn.lock index 920fe7d9..202d0124 100644 --- a/yarn.lock +++ b/yarn.lock @@ -559,10 +559,10 @@ "@nodelib/fs.scandir" "2.1.4" fastq "^1.6.0" -"@rollup/plugin-commonjs@^17.0.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" - integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== +"@rollup/plugin-commonjs@^18.0.0": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-18.0.0.tgz#50dc7518b5aa9e66a270e529ea85115d269825c4" + integrity sha512-fj92shhg8luw7XbA0HowAqz90oo7qtLGwqTKbyZ8pmOyH8ui5e+u0wPEgeHLH3djcVma6gUCUrjY6w5R2o1u6g== dependencies: "@rollup/pluginutils" "^3.1.0" commondir "^1.0.1" @@ -579,10 +579,10 @@ dependencies: "@rollup/pluginutils" "^3.0.8" -"@rollup/plugin-node-resolve@^11.0.0": - version "11.2.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.0.tgz#a5ab88c35bb7622d115f44984dee305112b6f714" - integrity sha512-qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA== +"@rollup/plugin-node-resolve@^11.2.1": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" + integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== dependencies: "@rollup/pluginutils" "^3.1.0" "@types/resolve" "1.17.1" @@ -4617,7 +4617,7 @@ magic-string@^0.22.5: dependencies: vlq "^0.2.2" -magic-string@^0.25.7: +magic-string@^0.25.3, magic-string@^0.25.7: version "0.25.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== @@ -6053,6 +6053,15 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rollup-plugin-inject@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" + integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== + dependencies: + estree-walker "^0.6.1" + magic-string "^0.25.3" + rollup-pluginutils "^2.8.1" + rollup-plugin-node-builtins@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/rollup-plugin-node-builtins/-/rollup-plugin-node-builtins-2.1.2.tgz#24a1fed4a43257b6b64371d8abc6ce1ab14597e9" @@ -6075,6 +6084,13 @@ rollup-plugin-node-globals@^1.4.0: process-es6 "^0.11.6" rollup-pluginutils "^2.3.1" +rollup-plugin-node-polyfills@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" + integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== + dependencies: + rollup-plugin-inject "^3.0.0" + rollup-plugin-terser@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" @@ -6096,7 +6112,7 @@ rollup-plugin-typescript2@^0.27.2: resolve "1.17.0" tslib "2.0.1" -rollup-pluginutils@^2.3.1: +rollup-pluginutils@^2.3.1, rollup-pluginutils@^2.8.1: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==