Skip to content

Commit 471f66a

Browse files
committed
build: expose compiler-sfc and server-renderer under main vue package + optimize package size
1 parent a42a14d commit 471f66a

File tree

18 files changed

+76
-60
lines changed

18 files changed

+76
-60
lines changed

jest.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ module.exports = {
4646
moduleNameMapper: {
4747
'@vue/compat': '<rootDir>/packages/vue-compat/src',
4848
'^@vue/(.*?)$': '<rootDir>/packages/$1/src',
49-
vue: '<rootDir>/packages/vue/src'
49+
vue: '<rootDir>/packages/vue/src',
50+
'@vue/consolidate': '@vue/consolidate'
5051
},
5152
rootDir: __dirname,
5253
testMatch: ['<rootDir>/packages/**/__tests__/**/*spec.[jt]s?(x)'],

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@
8080
"serve": "^12.0.0",
8181
"ts-jest": "^27.0.5",
8282
"typescript": "^4.2.2",
83-
"yorkie": "^2.0.0"
83+
"yorkie": "^2.0.0",
84+
"lodash": "^4.17.15",
85+
"marked": "^0.7.0",
86+
"todomvc-app-css": "^2.3.0"
8487
}
8588
}

packages/compiler-core/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,10 @@
3434
"dependencies": {
3535
"@vue/shared": "3.2.12",
3636
"@babel/parser": "^7.15.0",
37-
"@babel/types": "^7.15.0",
3837
"estree-walker": "^2.0.2",
3938
"source-map": "^0.6.1"
39+
},
40+
"devDependencies": {
41+
"@babel/types": "^7.15.0"
4042
}
4143
}

packages/compiler-sfc/package.json

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,27 @@
3333
"homepage": "https://github.com/vuejs/vue-next/tree/master/packages/compiler-sfc#readme",
3434
"dependencies": {
3535
"@babel/parser": "^7.15.0",
36-
"@types/estree": "^0.0.48",
3736
"@vue/compiler-core": "3.2.12",
3837
"@vue/compiler-dom": "3.2.12",
3938
"@vue/compiler-ssr": "3.2.12",
4039
"@vue/ref-transform": "3.2.12",
4140
"@vue/shared": "3.2.12",
42-
"consolidate": "^0.16.0",
4341
"estree-walker": "^2.0.2",
44-
"hash-sum": "^2.0.0",
45-
"lru-cache": "^5.1.1",
4642
"magic-string": "^0.25.7",
47-
"merge-source-map": "^1.1.0",
48-
"postcss": "^8.1.10",
49-
"postcss-modules": "^4.0.0",
50-
"postcss-selector-parser": "^6.0.4",
51-
"source-map": "^0.6.1"
43+
"source-map": "^0.6.1",
44+
"postcss": "^8.1.10"
5245
},
5346
"devDependencies": {
47+
"@types/estree": "^0.0.48",
5448
"@babel/types": "^7.15.0",
55-
"@types/consolidate": "^0.14.0",
5649
"@types/lru-cache": "^5.1.0",
5750
"pug": "^3.0.1",
58-
"sass": "^1.26.9"
51+
"sass": "^1.26.9",
52+
"@vue/consolidate": "^0.17.2",
53+
"hash-sum": "^2.0.0",
54+
"lru-cache": "^5.1.1",
55+
"merge-source-map": "^1.1.0",
56+
"postcss-modules": "^4.0.0",
57+
"postcss-selector-parser": "^6.0.4"
5958
}
6059
}

packages/compiler-sfc/src/cache.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import LRU from 'lru-cache'
2+
13
export function createCache<T>(size = 500) {
24
return __GLOBAL__ || __ESM_BROWSER__
35
? new Map<string, T>()
4-
: (new (require('lru-cache'))(size) as Map<string, T>)
6+
: (new LRU(size) as any as Map<string, T>)
57
}

packages/compiler-sfc/src/compileStyle.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
} from './stylePreprocessors'
1616
import { RawSourceMap } from 'source-map'
1717
import { cssVarsPlugin } from './cssVars'
18+
import postcssModules from 'postcss-modules'
1819

1920
export interface SFCStyleCompileOptions {
2021
source: string
@@ -47,7 +48,7 @@ export interface CSSModulesOptions {
4748
hashPrefix?: string
4849
localsConvention?: 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashesOnly'
4950
exportGlobals?: boolean
50-
globalModulePaths?: string[]
51+
globalModulePaths?: RegExp[]
5152
}
5253

5354
export interface SFCAsyncStyleCompileOptions extends SFCStyleCompileOptions {
@@ -131,7 +132,7 @@ export function doCompileStyle(
131132
)
132133
}
133134
plugins.push(
134-
require('postcss-modules')({
135+
postcssModules({
135136
...modulesOptions,
136137
getJSON: (_cssFileName: string, json: Record<string, string>) => {
137138
cssModules = json

packages/compiler-sfc/src/compileTemplate.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
import { generateCodeFrame, isObject } from '@vue/shared'
2222
import * as CompilerDOM from '@vue/compiler-dom'
2323
import * as CompilerSSR from '@vue/compiler-ssr'
24-
import consolidate from 'consolidate'
24+
import consolidate from '@vue/consolidate'
2525
import { warnOnce } from './warn'
2626
import { genCssVarsFromList } from './cssVars'
2727

@@ -121,7 +121,7 @@ export function compileTemplate(
121121
? preprocessCustomRequire(preprocessLang)
122122
: __ESM_BROWSER__
123123
? undefined
124-
: require('consolidate')[preprocessLang as keyof typeof consolidate]
124+
: consolidate[preprocessLang as keyof typeof consolidate]
125125
: false
126126
if (preprocessor) {
127127
try {

packages/vue/compiler-sfc/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from '@vue/compiler-sfc'

packages/vue/compiler-sfc/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require('@vue/compiler-sfc')

packages/vue/compiler-sfc/index.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from '@vue/compiler-sfc'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"main": "index.js",
3+
"module": "index.mjs",
4+
"types": "index.d.ts"
5+
}

packages/vue/package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
"files": [
1111
"index.js",
1212
"dist",
13+
"compiler-sfc",
14+
"server-renderer",
1315
"ref-macros.d.ts"
1416
],
1517
"buildOptions": {
@@ -40,11 +42,8 @@
4042
"dependencies": {
4143
"@vue/shared": "3.2.12",
4244
"@vue/compiler-dom": "3.2.12",
43-
"@vue/runtime-dom": "3.2.12"
44-
},
45-
"devDependencies": {
46-
"lodash": "^4.17.15",
47-
"marked": "^0.7.0",
48-
"todomvc-app-css": "^2.3.0"
45+
"@vue/runtime-dom": "3.2.12",
46+
"@vue/compiler-sfc": "3.2.12",
47+
"@vue/server-renderer": "3.2.12"
4948
}
5049
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from '@vue/server-renderer'

packages/vue/server-renderer/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require('@vue/server-renderer')
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from '@vue/server-renderer'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"main": "index.js",
3+
"module": "index.mjs",
4+
"types": "index.d.ts"
5+
}

rollup.config.js

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ const outputConfigs = {
3636
file: resolve(`dist/${name}.global.js`),
3737
format: `iife`
3838
},
39-
4039
// runtime-only builds, for main "vue" package only
4140
'esm-bundler-runtime': {
4241
file: resolve(`dist/${name}.runtime.esm-bundler.js`),
@@ -140,29 +139,43 @@ function createConfig(format, output, plugins = []) {
140139
}
141140
} else {
142141
// Node / esm-bundler builds.
143-
// externalize all deps unless it's the compat build.
142+
// externalize all direct deps unless it's the compat build.
144143
external = [
145144
...Object.keys(pkg.dependencies || {}),
146145
...Object.keys(pkg.peerDependencies || {}),
147146
...['path', 'url', 'stream'] // for @vue/compiler-sfc / server-renderer
148147
]
149148
}
150149

151-
// the browser builds of @vue/compiler-sfc requires postcss to be available
152-
// as a global (e.g. http://wzrd.in/standalone/postcss)
153-
output.globals = {
154-
postcss: 'postcss'
150+
// we are bundling forked consolidate.js in compiler-sfc which dynamically
151+
// requires a ton of template engines which should be ignored.
152+
let cjsIgnores = []
153+
if (pkg.name === '@vue/compiler-sfc') {
154+
cjsIgnores = [
155+
...Object.keys(require('@vue/consolidate/package.json').devDependencies),
156+
'vm',
157+
'crypto',
158+
'react-dom/server',
159+
'teacup/lib/express',
160+
'arc-templates/dist/es5',
161+
'then-pug',
162+
'then-jade'
163+
]
155164
}
156165

157166
const nodePlugins =
158-
packageOptions.enableNonBrowserBranches && format !== 'cjs'
167+
(format === 'cjs' && Object.keys(pkg.devDependencies || {}).length) ||
168+
packageOptions.enableNonBrowserBranches
159169
? [
160170
// @ts-ignore
161171
require('@rollup/plugin-commonjs')({
162-
sourceMap: false
172+
sourceMap: false,
173+
ignore: cjsIgnores
163174
}),
164-
// @ts-ignore
165-
require('rollup-plugin-polyfill-node')(),
175+
...(format === 'cjs'
176+
? []
177+
: // @ts-ignore
178+
[require('rollup-plugin-polyfill-node')()]),
166179
require('@rollup/plugin-node-resolve').nodeResolve()
167180
]
168181
: []

yarn.lock

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -739,19 +739,6 @@
739739
dependencies:
740740
"@babel/types" "^7.3.0"
741741

742-
"@types/bluebird@*":
743-
version "3.5.36"
744-
resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.36.tgz#00d9301d4dc35c2f6465a8aec634bb533674c652"
745-
integrity sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==
746-
747-
"@types/consolidate@^0.14.0":
748-
version "0.14.1"
749-
resolved "https://registry.yarnpkg.com/@types/consolidate/-/consolidate-0.14.1.tgz#78f01b1ed747d945dea9969581fcc1d0cb59bad8"
750-
integrity sha512-p0QTiPgjYssVJEo8zJ1WPfvfCpSvIU9oLZ7WPKl4Nx5dvaRAGb7Mk0a14T6UOVhI5PXYL7CkM4+lS7VRrUePUQ==
751-
dependencies:
752-
"@types/bluebird" "*"
753-
"@types/node" "*"
754-
755742
"@types/estree@*":
756743
version "0.0.50"
757744
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
@@ -928,6 +915,11 @@
928915
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.8.1.tgz#6cc2a8dfd04201e3c868c239091aaa89aa75f880"
929916
integrity sha512-gktQGZ7qfaDdVJhT86fWSkyhP+bdoA81f5S2TQOL5Sbe5q7B36XfLGq8Q0BpHoqhPSflAMe6WwM1IecP1sChRw==
930917

918+
"@vue/consolidate@^0.17.2":
919+
version "0.17.2"
920+
resolved "https://registry.yarnpkg.com/@vue/consolidate/-/consolidate-0.17.2.tgz#8a871a638ae94fd88660a235b7b0837538b92e35"
921+
integrity sha512-OG4/GJDOJdERTBw7G/gXE1Xf0cbPEBGJ73sBe7pOeMR4A0x3JNjKuwcv7QjXSOsWiYtsqDDgaKFac9fj1Gv1fw==
922+
931923
"@vue/repl@^0.3.7":
932924
version "0.3.7"
933925
resolved "https://registry.yarnpkg.com/@vue/repl/-/repl-0.3.7.tgz#e5bd0f4a87ce1ce88bc03a09ec1bb5ccec779bce"
@@ -1266,11 +1258,6 @@ bl@~0.8.1:
12661258
dependencies:
12671259
readable-stream "~1.0.26"
12681260

1269-
bluebird@^3.7.2:
1270-
version "3.7.2"
1271-
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
1272-
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
1273-
12741261
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
12751262
version "4.12.0"
12761263
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
@@ -1732,13 +1719,6 @@ concat-stream@^1.4.4:
17321719
readable-stream "^2.2.2"
17331720
typedarray "^0.0.6"
17341721

1735-
consolidate@^0.16.0:
1736-
version "0.16.0"
1737-
resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16"
1738-
integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==
1739-
dependencies:
1740-
bluebird "^3.7.2"
1741-
17421722
constantinople@^4.0.1:
17431723
version "4.0.1"
17441724
resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151"

0 commit comments

Comments
 (0)