]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
build: support source map in build and dev scripts
authorEvan You <yyx990803@gmail.com>
Tue, 28 Jan 2020 15:28:40 +0000 (10:28 -0500)
committerEvan You <yyx990803@gmail.com>
Tue, 28 Jan 2020 15:28:48 +0000 (10:28 -0500)
.github/contributing.md
rollup.config.js
scripts/build.js
scripts/dev.js

index 62572bc435f944c53895a63573765645484a16af..8d1e8d929e3409be6b3d3dd420e58fe0ef8328b8 100644 (file)
@@ -106,9 +106,13 @@ Multiple formats can be specified as a comma-separated list:
 yarn build runtime-core -f esm,cjs
 ```
 
+#### Build with Source Maps
+
+Use the `--sourcemap` or `-s` flag to build with source maps. Note this will make the build much slower.
+
 #### Build with Type Declarations
 
-The `--types` flag will generate type declarations during the build and in addition:
+The `--types` or `-t` flag will generate type declarations during the build and in addition:
 
 - Roll the declarations into a single `.dts` file for each package;
 - Generate an API report in `<projectRoot>/temp/<packageName>.api.md`. This report contains potential warnings emitted by [api-extractor](https://api-extractor.com/).
@@ -129,6 +133,8 @@ $ yarn dev
 
 - The `dev` script supports specifying build format via the `-f` flag just like the `build` script.
 
+- The `dev` script also supports the `-s` flag for generating source maps, but it will make rebuilds slower.
+
 ### `yarn test`
 
 The `yarn test` script simply calls the `jest` binary, so all [Jest CLI Options](https://jestjs.io/docs/en/cli) can be used. Some examples:
index 29ead12fa6eab0132e82be4ebe8e0d99637c607c..bad7672a8232f0137edaf38160b7092fc5dfc94d 100644 (file)
@@ -73,6 +73,7 @@ function createConfig(format, output, plugins = []) {
     process.exit(1)
   }
 
+  output.sourcemap = !!process.env.SOURCE_MAP
   output.externalLiveBindings = false
 
   const isProductionBuild =
@@ -98,6 +99,7 @@ function createConfig(format, output, plugins = []) {
     cacheRoot: path.resolve(__dirname, 'node_modules/.rts2_cache'),
     tsconfigOverride: {
       compilerOptions: {
+        sourceMap: output.sourcemap,
         declaration: shouldEmitDeclarations,
         declarationMap: shouldEmitDeclarations
       },
index 985452423428cb9116ad890d217b676abaab5455..220512e72ae46e4cbca59c5d2a298b49101b8332 100644 (file)
@@ -27,6 +27,7 @@ const targets = args._
 const formats = args.formats || args.f
 const devOnly = args.devOnly || args.d
 const prodOnly = !devOnly && (args.prodOnly || args.p)
+const sourceMap = args.sourcemap || args.s
 const isRelease = args.release
 const buildTypes = args.t || args.types || isRelease
 const buildAllMatching = args.all || args.a
@@ -80,7 +81,8 @@ async function build(target) {
         formats ? `FORMATS:${formats}` : ``,
         buildTypes ? `TYPES:true` : ``,
         prodOnly ? `PROD_ONLY:true` : ``,
-        lean ? `LEAN:true` : ``
+        lean ? `LEAN:true` : ``,
+        sourceMap ? `SOURCE_MAP:true` : ``
       ]
         .filter(Boolean)
         .join(',')
index 4a6b1e4f1699468ed6ff76141e2c23fb4d2b8bc9..35ee48eda2f52dede2020857ebb2d3e2861d7e4f 100644 (file)
@@ -21,6 +21,7 @@ const { fuzzyMatchTarget } = require('./utils')
 const args = require('minimist')(process.argv.slice(2))
 const target = args._.length ? fuzzyMatchTarget(args._)[0] : 'vue'
 const formats = args.formats || args.f
+const sourceMap = args.sourcemap || args.s
 const commit = execa.sync('git', ['rev-parse', 'HEAD']).stdout.slice(0, 7)
 
 execa(
@@ -31,8 +32,11 @@ execa(
     [
       `COMMIT:${commit}`,
       `TARGET:${target}`,
-      `FORMATS:${formats || 'global'}`
-    ].join(',')
+      `FORMATS:${formats || 'global'}`,
+      sourceMap ? `SOURCE_MAP:true` : ``
+    ]
+      .filter(Boolean)
+      .join(',')
   ],
   {
     stdio: 'inherit'