From b2cc7de121e227896f3276b2b03d3ac8826bac82 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 3101dfd3a4..2b89ce151e 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}"].join(""),"x-comments",t,"{color:green}"].join("")}];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}"].join(""),"x-comments",t,"{color:green}"].join("")}];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})}); 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 d46e3be845..9a7b1dc60b 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,l,o,a,n,p,s,u){function c(e,t,r,l){return s(e),[]}e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e,t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,l=l&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l,o=o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o,a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a,n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n,p=p&&Object.prototype.hasOwnProperty.call(p,"default")?p.default:p,s=s&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s;var y=u.registerTemplate(c);p(c,"stylesheets",[]),p(c,"stylesheetTokens",{hostAttribute:"x-node_env_node_env-host",shadowAttribute:"x-node_env_node_env"});var h=function(p){function s(){return r(this,s),o(this,e(a(s),"apply",this,arguments))}return n(s,p),l(s,[{key:"connectedCallback",value:function(){t(this._ES5ProxyType?this.get("root"):this.root,"querySelector","outsideOfProductionCheck")}}]),s}(u.LightningElement);return u.registerComponent(h,{tmpl:y})}); \ 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,o,a,n,p,s,u,c){function y(e,t,r,l){return u(e),[]}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,l=l&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l,o=o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o,a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a,n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n,p=p&&Object.prototype.hasOwnProperty.call(p,"default")?p.default:p,s=s&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s,u=u&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u;var d=c.registerTemplate(y);s(y,"stylesheets",[]),s(y,"stylesheetTokens",{hostAttribute:"x-node_env_node_env-host",shadowAttribute:"x-node_env_node_env"});var i=function(e){function s(){return l(this,s),a(this,t(n(s),"apply",this,arguments))}return p(s,e),o(s,[{key:"connectedCallback",value:function(){r(this._ES5ProxyType?this.get("root"):this.root,"querySelector","outsideOfProductionCheck")}}]),s}(c.LightningElement),h=c.registerComponent(i,{tmpl:d});e.default=h,Object.defineProperty(e,"__esModule",{value:!0})}); 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 }); });`) ); });