From fd92fd27cf4e329cefa439ffb3408dd68b483439 Mon Sep 17 00:00:00 2001 From: Pierre-Marie Dartus Date: Wed, 4 Mar 2020 11:01:13 +0100 Subject: [PATCH] fix(compiler): force rollup to use named exports --- .../fixtures/expected-minify-no-comments.js | 2 +- .../src/__tests__/fixtures/expected-prod-mode.js | 2 +- .../__tests__/fixtures/expected-prod_compat-mode.js | 2 +- packages/@lwc/compiler/src/bundler/bundler.ts | 12 ++++++++++-- .../rollup-plugins/__tests__/module-resolver.spec.ts | 10 ++++++---- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/packages/@lwc/compiler/src/__tests__/fixtures/expected-minify-no-comments.js b/packages/@lwc/compiler/src/__tests__/fixtures/expected-minify-no-comments.js index 09eacf8ac7..639f64f400 100644 --- a/packages/@lwc/compiler/src/__tests__/fixtures/expected-minify-no-comments.js +++ b/packages/@lwc/compiler/src/__tests__/fixtures/expected-minify-no-comments.js @@ -1 +1 @@ -define("x/comments",["lwc"],function(e){var t=[function(e,t,s){return(s?":host{color:#00f}":e+"{color:#00f}")+"x-comments"+t+"{color:green}"}];function s(e,t,s,n){const{d:o,h:r}=e;return[r("h1",{key:0},[o(t.myname)])]}var n=e.registerTemplate(s);s.stylesheets=[],t&&s.stylesheets.push.apply(s.stylesheets,t),s.stylesheetTokens={hostAttribute:"x-comments_comments-host",shadowAttribute:"x-comments_comments"};class o extends e.LightningElement{constructor(...e){super(...e),this.myname="default value"}}return e.registerDecorators(o,{track:{myname:1}}),e.registerComponent(o,{tmpl:n})}); \ No newline at end of file +define("x/comments",["exports","lwc"],function(e,t){var s=[function(e,t,s){return(s?":host{color:#00f}":e+"{color:#00f}")+"x-comments"+t+"{color:green}"}];function o(e,t,s,o){const{d:n,h:r}=e;return[r("h1",{key:0},[n(t.myname)])]}var n=t.registerTemplate(o);o.stylesheets=[],s&&o.stylesheets.push.apply(o.stylesheets,s),o.stylesheetTokens={hostAttribute:"x-comments_comments-host",shadowAttribute:"x-comments_comments"};class r extends t.LightningElement{constructor(...e){super(...e),this.myname="default value"}}t.registerDecorators(r,{track:{myname:1}});var m=t.registerComponent(r,{tmpl:n});e.default=m,Object.defineProperty(e,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod-mode.js b/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod-mode.js index 75aef0637a..d8275df7c0 100755 --- a/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod-mode.js +++ b/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod-mode.js @@ -1 +1 @@ -define("x/class_and_template",["lwc"],function(t){function e(t,e,s,n){const{h:a}=t;return[a("section",{key:0},[])]}var s=t.registerTemplate(e);e.stylesheets=[],e.stylesheetTokens={hostAttribute:"x-class_and_template_class_and_template-host",shadowAttribute:"x-class_and_template_class_and_template"};class n extends t.LightningElement{constructor(){super(),this.t=1,this.counter=0}}return t.registerDecorators(n,{fields:["t"]}),t.registerComponent(n,{tmpl:s})}); \ No newline at end of file +define("x/class_and_template",["exports","lwc"],function(e,t){function s(e,t,s,a){const{h:n}=e;return[n("section",{key:0},[])]}var a=t.registerTemplate(s);s.stylesheets=[],s.stylesheetTokens={hostAttribute:"x-class_and_template_class_and_template-host",shadowAttribute:"x-class_and_template_class_and_template"};class n extends t.LightningElement{constructor(){super(),this.t=1,this.counter=0}}t.registerDecorators(n,{fields:["t"]});var l=t.registerComponent(n,{tmpl:a});e.default=l,Object.defineProperty(e,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod_compat-mode.js b/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod_compat-mode.js index 9b3dc03c09..5c7524d196 100755 --- a/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod_compat-mode.js +++ b/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod_compat-mode.js @@ -1 +1 @@ -define("x/node_env",["proxy-compat/callKey2","proxy-compat/callKey1","@babel/runtime/helpers/classCallCheck","@babel/runtime/helpers/createClass","@babel/runtime/helpers/possibleConstructorReturn","@babel/runtime/helpers/getPrototypeOf","@babel/runtime/helpers/inherits","proxy-compat/setKey","@babel/runtime/helpers/objectDestructuringEmpty","lwc"],function(e,t,r,n,a,l,o,s,u,h){function i(e,t,r,n){return u(e),[]}e=e&&e.hasOwnProperty("default")?e.default:e,t=t&&t.hasOwnProperty("default")?t.default:t,r=r&&r.hasOwnProperty("default")?r.default:r,n=n&&n.hasOwnProperty("default")?n.default:n,a=a&&a.hasOwnProperty("default")?a.default:a,l=l&&l.hasOwnProperty("default")?l.default:l,o=o&&o.hasOwnProperty("default")?o.default:o,s=s&&s.hasOwnProperty("default")?s.default:s,u=u&&u.hasOwnProperty("default")?u.default:u;var p=h.registerTemplate(i);s(i,"stylesheets",[]),s(i,"stylesheetTokens",{hostAttribute:"x-node_env_node_env-host",shadowAttribute:"x-node_env_node_env"});var d=function(s){function u(){return r(this,u),a(this,e(l(u),"apply",this,arguments))}return o(u,s),n(u,[{key:"connectedCallback",value:function(){t(this._ES5ProxyType?this.get("root"):this.root,"querySelector","outsideOfProductionCheck")}}]),u}(h.LightningElement);return h.registerComponent(d,{tmpl:p})}); \ No newline at end of file +define("x/node_env",["exports","proxy-compat/callKey2","proxy-compat/callKey1","@babel/runtime/helpers/classCallCheck","@babel/runtime/helpers/createClass","@babel/runtime/helpers/possibleConstructorReturn","@babel/runtime/helpers/getPrototypeOf","@babel/runtime/helpers/inherits","proxy-compat/setKey","@babel/runtime/helpers/objectDestructuringEmpty","lwc"],function(e,t,r,l,n,a,o,s,u,p,d){function i(e,t,r,l){return p(e),[]}t=t&&t.hasOwnProperty("default")?t.default:t,r=r&&r.hasOwnProperty("default")?r.default:r,l=l&&l.hasOwnProperty("default")?l.default:l,n=n&&n.hasOwnProperty("default")?n.default:n,a=a&&a.hasOwnProperty("default")?a.default:a,o=o&&o.hasOwnProperty("default")?o.default:o,s=s&&s.hasOwnProperty("default")?s.default:s,u=u&&u.hasOwnProperty("default")?u.default:u,p=p&&p.hasOwnProperty("default")?p.default:p;var h=d.registerTemplate(i);u(i,"stylesheets",[]),u(i,"stylesheetTokens",{hostAttribute:"x-node_env_node_env-host",shadowAttribute:"x-node_env_node_env"});var f=function(e){function u(){return l(this,u),a(this,t(o(u),"apply",this,arguments))}return s(u,e),n(u,[{key:"connectedCallback",value:function(){r(this._ES5ProxyType?this.get("root"):this.root,"querySelector","outsideOfProductionCheck")}}]),u}(d.LightningElement),y=d.registerComponent(f,{tmpl:h});e.default=y,Object.defineProperty(e,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/packages/@lwc/compiler/src/bundler/bundler.ts b/packages/@lwc/compiler/src/bundler/bundler.ts index b67c0f3217..9b1f98f8d4 100755 --- a/packages/@lwc/compiler/src/bundler/bundler.ts +++ b/packages/@lwc/compiler/src/bundler/bundler.ts @@ -117,10 +117,18 @@ export async function bundle(options: NormalizedCompileOptions): Promise { expect(success).toBe(true); expect(pretify(result.code)).toBe( - pretify(`define('x/class_and_template', ['lwc'], function (lwc) { + pretify(`define('x/class_and_template', ['exports', 'lwc'], function (exports, lwc) { function tmpl($api, $cmp, $slotset, $ctx) { const { t: api_text, @@ -66,7 +66,8 @@ describe('module resolver', () => { } } - return Test; + exports.default = Test; + Object.defineProperty(exports, '__esModule', { value: true }); });`) ); }); @@ -90,7 +91,7 @@ describe('module resolver', () => { const { success, result } = await compile(noOutputConfig); expect(success).toBe(true); expect(pretify(result.code)).toBe( - pretify(`define('x/class_and_template', ['lwc'], function (lwc) { + pretify(`define('x/class_and_template', ['exports', 'lwc'], function (exports, lwc) { function tmpl($api, $cmp, $slotset, $ctx) { const { t: api_text, @@ -115,7 +116,8 @@ describe('module resolver', () => { } } - return Test; + exports.default = Test; + Object.defineProperty(exports, '__esModule', { value: true }); });`) ); });