build: make compiler-sfc global build work

This commit is contained in:
Evan You 2021-03-27 12:33:52 -04:00
parent 67039b3434
commit 2424768808
4 changed files with 32 additions and 24 deletions

View File

@ -43,9 +43,9 @@
"devDependencies": { "devDependencies": {
"@babel/types": "^7.12.0", "@babel/types": "^7.12.0",
"@microsoft/api-extractor": "^7.12.1", "@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-json": "^4.0.0",
"@rollup/plugin-node-resolve": "^11.0.0", "@rollup/plugin-node-resolve": "^11.2.1",
"@rollup/plugin-replace": "^2.3.4", "@rollup/plugin-replace": "^2.3.4",
"@types/hash-sum": "^1.0.0", "@types/hash-sum": "^1.0.0",
"@types/jest": "^26.0.16", "@types/jest": "^26.0.16",
@ -69,6 +69,7 @@
"rollup": "~2.38.5", "rollup": "~2.38.5",
"rollup-plugin-node-builtins": "^2.1.2", "rollup-plugin-node-builtins": "^2.1.2",
"rollup-plugin-node-globals": "^1.4.0", "rollup-plugin-node-globals": "^1.4.0",
"rollup-plugin-node-polyfills": "^0.2.1",
"rollup-plugin-terser": "^7.0.2", "rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.27.2", "rollup-plugin-typescript2": "^0.27.2",
"semver": "^7.3.2", "semver": "^7.3.2",

View File

@ -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). 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 ## API
The API is intentionally low-level due to the various considerations when integrating Vue SFCs in a build system: The API is intentionally low-level due to the various considerations when integrating Vue SFCs in a build system:

View File

@ -119,9 +119,7 @@ function createConfig(format, output, plugins = []) {
const external = const external =
isGlobalBuild || isBrowserESMBuild isGlobalBuild || isBrowserESMBuild
? packageOptions.enableNonBrowserBranches ? 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, : // normal browser builds - non-browser only imports are tree-shaken,
// they are only listed here to suppress warnings. // they are only listed here to suppress warnings.
['source-map', '@babel/parser', 'estree-walker'] ['source-map', '@babel/parser', 'estree-walker']
@ -141,14 +139,11 @@ function createConfig(format, output, plugins = []) {
const nodePlugins = const nodePlugins =
packageOptions.enableNonBrowserBranches && format !== 'cjs' packageOptions.enableNonBrowserBranches && format !== 'cjs'
? [ ? [
require('@rollup/plugin-node-resolve').nodeResolve({
preferBuiltins: true
}),
require('@rollup/plugin-commonjs')({ require('@rollup/plugin-commonjs')({
sourceMap: false sourceMap: false
}), }),
require('rollup-plugin-node-builtins')(), require('rollup-plugin-node-polyfills')(),
require('rollup-plugin-node-globals')() require('@rollup/plugin-node-resolve').nodeResolve()
] ]
: [] : []

View File

@ -559,10 +559,10 @@
"@nodelib/fs.scandir" "2.1.4" "@nodelib/fs.scandir" "2.1.4"
fastq "^1.6.0" fastq "^1.6.0"
"@rollup/plugin-commonjs@^17.0.0": "@rollup/plugin-commonjs@^18.0.0":
version "17.1.0" version "18.0.0"
resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-18.0.0.tgz#50dc7518b5aa9e66a270e529ea85115d269825c4"
integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== integrity sha512-fj92shhg8luw7XbA0HowAqz90oo7qtLGwqTKbyZ8pmOyH8ui5e+u0wPEgeHLH3djcVma6gUCUrjY6w5R2o1u6g==
dependencies: dependencies:
"@rollup/pluginutils" "^3.1.0" "@rollup/pluginutils" "^3.1.0"
commondir "^1.0.1" commondir "^1.0.1"
@ -579,10 +579,10 @@
dependencies: dependencies:
"@rollup/pluginutils" "^3.0.8" "@rollup/pluginutils" "^3.0.8"
"@rollup/plugin-node-resolve@^11.0.0": "@rollup/plugin-node-resolve@^11.2.1":
version "11.2.0" version "11.2.1"
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.0.tgz#a5ab88c35bb7622d115f44984dee305112b6f714" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60"
integrity sha512-qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA== integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==
dependencies: dependencies:
"@rollup/pluginutils" "^3.1.0" "@rollup/pluginutils" "^3.1.0"
"@types/resolve" "1.17.1" "@types/resolve" "1.17.1"
@ -4617,7 +4617,7 @@ magic-string@^0.22.5:
dependencies: dependencies:
vlq "^0.2.2" vlq "^0.2.2"
magic-string@^0.25.7: magic-string@^0.25.3, magic-string@^0.25.7:
version "0.25.7" version "0.25.7"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
@ -6053,6 +6053,15 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0" hash-base "^3.0.0"
inherits "^2.0.1" 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: rollup-plugin-node-builtins@^2.1.2:
version "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" 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" process-es6 "^0.11.6"
rollup-pluginutils "^2.3.1" 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: rollup-plugin-terser@^7.0.2:
version "7.0.2" version "7.0.2"
resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" 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" resolve "1.17.0"
tslib "2.0.1" tslib "2.0.1"
rollup-pluginutils@^2.3.1: rollup-pluginutils@^2.3.1, rollup-pluginutils@^2.8.1:
version "2.8.2" version "2.8.2"
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==