diff --git a/src/compiler/compile/Component.ts b/src/compiler/compile/Component.ts
index 202e14fd98..346c1a869b 100644
--- a/src/compiler/compile/Component.ts
+++ b/src/compiler/compile/Component.ts
@@ -342,22 +342,29 @@ export default class Component {
css = compile_options.customElement
? { code: null, map: null }
: result.css;
+
+ const jsSourcemapEnabled = compile_options.enableSourcemap === true || compile_options.enableSourcemap === 'js'
- const sourcemap_source_filename = get_sourcemap_source_filename(compile_options);
+ if (!jsSourcemapEnabled) {
+ js = print(program);
+ js.map = null;
+ } else {
+ const sourcemap_source_filename = get_sourcemap_source_filename(compile_options);
- js = print(program, {
- sourceMapSource: sourcemap_source_filename
- });
+ js = print(program, {
+ sourceMapSource: sourcemap_source_filename,
+ });
- js.map.sources = [
- sourcemap_source_filename
- ];
+ js.map.sources = [
+ sourcemap_source_filename
+ ];
- js.map.sourcesContent = [
- this.source
- ];
+ js.map.sourcesContent = [
+ this.source
+ ];
- js.map = apply_preprocessor_sourcemap(sourcemap_source_filename, js.map, compile_options.sourcemap as (string | RawSourceMap | DecodedSourceMap));
+ js.map = apply_preprocessor_sourcemap(sourcemap_source_filename, js.map, compile_options.sourcemap as (string | RawSourceMap | DecodedSourceMap));
+ }
}
return {
diff --git a/src/compiler/compile/index.ts b/src/compiler/compile/index.ts
index 96b24bceee..afe9c56cf4 100644
--- a/src/compiler/compile/index.ts
+++ b/src/compiler/compile/index.ts
@@ -13,6 +13,7 @@ const valid_options = [
'name',
'filename',
'sourcemap',
+ 'enableSourcemap',
'generate',
'errorMode',
'varsReport',
@@ -82,7 +83,7 @@ function validate_options(options: CompileOptions, warnings: Warning[]) {
}
export default function compile(source: string, options: CompileOptions = {}) {
- options = Object.assign({ generate: 'dom', dev: false }, options);
+ options = Object.assign({ generate: 'dom', dev: false, enableSourcemap: true }, options);
const stats = new Stats();
const warnings = [];
diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts
index f74f4cdf1c..26f9ad9de3 100644
--- a/src/compiler/compile/render_dom/index.ts
+++ b/src/compiler/compile/render_dom/index.ts
@@ -33,10 +33,16 @@ export default function dom(
}
const css = component.stylesheet.render(options.filename, !options.customElement);
+
+ const cssSourcemapEnabled = options.enableSourcemap === true || options.enableSourcemap === 'css';
- css.map = apply_preprocessor_sourcemap(options.filename, css.map, options.sourcemap as string | RawSourceMap | DecodedSourceMap);
+ if (cssSourcemapEnabled) {
+ css.map = apply_preprocessor_sourcemap(options.filename, css.map, options.sourcemap as string | RawSourceMap | DecodedSourceMap);
+ } else {
+ css.map = null;
+ }
- const styles = component.stylesheet.has_styles && options.dev
+ const styles = cssSourcemapEnabled && component.stylesheet.has_styles && options.dev
? `${css.code}\n/*# sourceMappingURL=${css.map.toUrl()} */`
: css.code;
@@ -521,7 +527,7 @@ export default function dom(
constructor(options) {
super();
- ${css.code && b`this.shadowRoot.innerHTML = \`\`;`}
+ ${css.code && b`this.shadowRoot.innerHTML = \`\`;`}
@init(this, { target: this.shadowRoot, props: ${init_props}, customElement: true }, ${definition}, ${has_create_fragment ? 'create_fragment' : 'null'}, ${not_equal}, ${prop_indexes}, null, ${dirty});
diff --git a/src/compiler/compile/render_ssr/index.ts b/src/compiler/compile/render_ssr/index.ts
index b35a6ce6ff..e7ee9dfe5e 100644
--- a/src/compiler/compile/render_ssr/index.ts
+++ b/src/compiler/compile/render_ssr/index.ts
@@ -200,11 +200,13 @@ export default function ssr(
main
].filter(Boolean);
+ const cssSourcemapEnabled = options.enableSourcemap === true || options.enableSourcemap === 'css';
+
const js = b`
${css.code ? b`
const #css = {
code: "${css.code}",
- map: ${css.map ? string_literal(css.map.toString()) : 'null'}
+ map: ${cssSourcemapEnabled && css.map ? string_literal(css.map.toString()) : 'null'}
};` : null}
${component.extract_javascript(component.ast.module)}
diff --git a/src/compiler/interfaces.ts b/src/compiler/interfaces.ts
index 7446c4c14b..3b2f93278e 100644
--- a/src/compiler/interfaces.ts
+++ b/src/compiler/interfaces.ts
@@ -147,6 +147,7 @@ export interface CompileOptions {
varsReport?: 'full' | 'strict' | false;
sourcemap?: object | string;
+ enableSourcemap?: boolean | 'js' | 'css';
outputFilename?: string;
cssOutputFilename?: string;
sveltePath?: string;