Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not add .js extension to injected helper imports when module transform presents #10833

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -1,8 +1,8 @@
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault.js");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral.js"));
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));

function _templateObject() {
const data = (0, _taggedTemplateLiteral2.default)(["foo"]);
Expand Down
@@ -1,9 +1,9 @@
"use strict";

var _interopRequireDefault3 = require("@babel/runtime/helpers/interopRequireDefault.js");
var _interopRequireDefault3 = require("@babel/runtime/helpers/interopRequireDefault");

exports.__esModule = true;

var _interopRequireDefault2 = _interopRequireDefault3(require("@babel/runtime/helpers/interopRequireDefault.js"));
var _interopRequireDefault2 = _interopRequireDefault3(require("@babel/runtime/helpers/interopRequireDefault"));

console.log(_interopRequireDefault2.default);
@@ -1,8 +1,8 @@
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault.js");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral.js"));
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));

function _templateObject() {
const data = (0, _taggedTemplateLiteral2.default)(["foo"]);
Expand Down
@@ -1,11 +1,11 @@
"use strict";

var _interopRequireDefault3 = require("@babel/runtime/helpers/interopRequireDefault.js");
var _interopRequireDefault3 = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
value: true
});

var _interopRequireDefault2 = _interopRequireDefault3(require("@babel/runtime/helpers/interopRequireDefault.js"));
var _interopRequireDefault2 = _interopRequireDefault3(require("@babel/runtime/helpers/interopRequireDefault"));

console.log(_interopRequireDefault2.default);
4 changes: 4 additions & 0 deletions packages/babel-plugin-transform-modules-umd/src/index.js
Expand Up @@ -133,6 +133,10 @@ export default declare((api, options) => {
return {
name: "transform-modules-umd",

pre() {
this.file.set("@babel/plugin-transform-modules-*", "umd");
},

visitor: {
Program: {
exit(path) {
Expand Down
@@ -1,4 +1,4 @@
var _regeneratorRuntime = require("@babel/runtime/regenerator/index.js");
var _regeneratorRuntime = require("@babel/runtime/regenerator/index");

var _marked =
/*#__PURE__*/
Expand Down
9 changes: 8 additions & 1 deletion packages/babel-plugin-transform-runtime/src/index.js
Expand Up @@ -254,7 +254,14 @@ export default declare((api, options, dirname) => {
if (cached) {
cached = t.cloneNode(cached);
} else {
cached = addDefault(file.path, source, {
const moduleTransforms = file.get(
"@babel/plugin-transform-modules-*",
);
// Remove the trailing `.js` requires by ES Module when module transforms presents
const validSource = moduleTransforms
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically only amd and umd are affected by this issue since by default RequireJS does not support resolving foo.js => foo.js as-is out of the box. You may configure to support this but we did cause breaking changes to these users.

Both CommonJS and SystemJS support foo.js => foo.js, but at the same time they also support foo => foo.js. Hence I remove .js for the sake of briefness. C.f. #10549 (review)

? source.replace(/\.js$/, "")
: source;
cached = addDefault(file.path, validSource, {
importedInterop: "uncompiled",
nameHint,
blockHoist,
Expand Down
@@ -1,10 +1,10 @@
"use strict";

var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault.js");
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck.js"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass.js"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));

var _foo = _interopRequireDefault(require("foo"));

Expand Down
@@ -1,10 +1,10 @@
"use strict";

var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault.js");
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");

var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys.js");
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");

var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property.js");
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");

_Object$defineProperty(exports, "__esModule", {
value: true
Expand Down
@@ -1,10 +1,10 @@
"use strict";

var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault.js");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck.js"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass.js"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));

var _foo = _interopRequireDefault(require("foo"));

Expand Down
@@ -1,12 +1,12 @@
"use strict";

var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys.js");
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");

var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each.js");
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");

var _context;

var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault.js");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");

exports.__esModule = true;
var _exportNames = {
Expand Down
@@ -1,14 +1,14 @@
"use strict";

var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys.js");
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");

var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each.js");
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");

var _context;

var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault.js");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");

var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property.js");
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");

_Object$defineProperty(exports, "__esModule", {
value: true
Expand Down
@@ -0,0 +1,5 @@
import foo from "foo";

class Example {
method() {}
}
@@ -0,0 +1,7 @@
{
"plugins": [
"transform-runtime",
"transform-modules-amd",
"transform-classes"
]
}
@@ -0,0 +1,23 @@
define(["@babel/runtime/helpers/classCallCheck", "@babel/runtime/helpers/createClass", "foo"], function (_classCallCheck2, _createClass2, _foo) {
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

_classCallCheck2 = _interopRequireDefault(_classCallCheck2);
_createClass2 = _interopRequireDefault(_createClass2);
_foo = _interopRequireDefault(_foo);

let Example =
/*#__PURE__*/
function () {
function Example() {
(0, _classCallCheck2.default)(this, Example);
}

(0, _createClass2.default)(Example, [{
key: "method",
value: function method() {}
}]);
return Example;
}();
});
@@ -0,0 +1,5 @@
import foo from "foo";

class Example {
method() {}
}
@@ -0,0 +1,7 @@
{
"plugins": [
"transform-runtime",
"transform-modules-commonjs",
"transform-classes"
]
}
@@ -1,10 +1,10 @@
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault.js");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck.js"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass.js"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _foo = _interopRequireDefault(require("foo"));

Expand Down
@@ -0,0 +1,5 @@
import foo from "foo";

class Example {
method() {}
}
@@ -0,0 +1,7 @@
{
"plugins": [
"transform-runtime",
"transform-modules-amd",
"transform-classes"
]
}
@@ -0,0 +1,23 @@
define(["@babel/runtime/helpers/classCallCheck", "@babel/runtime/helpers/createClass", "foo"], function (_classCallCheck2, _createClass2, _foo) {
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

_classCallCheck2 = _interopRequireDefault(_classCallCheck2);
_createClass2 = _interopRequireDefault(_createClass2);
_foo = _interopRequireDefault(_foo);

let Example =
/*#__PURE__*/
function () {
function Example() {
(0, _classCallCheck2.default)(this, Example);
}

(0, _createClass2.default)(Example, [{
key: "method",
value: function method() {}
}]);
return Example;
}();
});
@@ -0,0 +1,5 @@
import foo from "foo";

class Example {
method() {}
}
@@ -0,0 +1,7 @@
{
"plugins": [
"transform-runtime",
"transform-modules-umd",
"transform-classes"
]
}
@@ -0,0 +1,35 @@
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(["@babel/runtime/helpers/classCallCheck", "@babel/runtime/helpers/createClass", "foo"], factory);
} else if (typeof exports !== "undefined") {
factory(require("@babel/runtime/helpers/classCallCheck"), require("@babel/runtime/helpers/createClass"), require("foo"));
} else {
var mod = {
exports: {}
};
factory(global.classCallCheck, global.createClass, global.foo);
global.input = mod.exports;
}
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_classCallCheck2, _createClass2, _foo) {
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

_classCallCheck2 = _interopRequireDefault(_classCallCheck2);
_createClass2 = _interopRequireDefault(_createClass2);
_foo = _interopRequireDefault(_foo);

let Example =
/*#__PURE__*/
function () {
function Example() {
(0, _classCallCheck2.default)(this, Example);
}

(0, _createClass2.default)(Example, [{
key: "method",
value: function method() {}
}]);
return Example;
}();
});
@@ -1,5 +1,6 @@
import foo from "foo";

class Example {
method() {}
property
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I rewrite this test case since it looks more practical that an ESM supported environment does not support class-properties and so we need to transform.

}

@@ -1,7 +1,6 @@
{
"plugins": [
"transform-runtime",
"transform-modules-commonjs",
"transform-classes"
"proposal-class-properties"
]
}
@@ -0,0 +1,9 @@
import _defineProperty from "@babel/runtime/helpers/defineProperty.js";
import foo from "foo";

class Example {
constructor() {
_defineProperty(this, "property", void 0);
}

}
@@ -1,6 +1,6 @@
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault.js");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
value: true
Expand Down