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
Fix e2e vue-cli
Babel 8 tests
#13050
Conversation
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 276d3b9:
|
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/44712/ |
-test('dep from node_modules should been transpiled when matched by transpileDependencies', async () => { | ||
+test.skip('dep from node_modules should been transpiled when matched by transpileDependencies', async () => { | ||
await project.write( | ||
'vue.config.js', | ||
`module.exports = { transpileDependencies: ['external-dep', '@scope/external-dep'] }` | ||
@@ -84,7 +84,7 @@ test('dep from node_modules should been transpiled when matched by transpileDepe | ||
expect(await readVendorFile()).toMatch('return "__SCOPE_TEST__"') | ||
}) | ||
|
||
-test('dep from node_modules should been transpiled when transpileDependencies is true', async () => { | ||
+test.skip('dep from node_modules should been transpiled when transpileDependencies is true', async () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I couldn't figure out how to make these two tests pass, so I disabled them for now.
The main problem is that Vue's Babel presets directly calls getTargets()
, so even if we specify the top-level targets option it's ignored.
The proper way to update this test would be to pass to Vue's Babel preset ie: 9
as targets, but I don't know how to modify its options.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reading through https://cli.vuejs.org/config/#babel and the setup think we just create a config file at https://github.com/vuejs/vue-cli/blob/89af6c50c2e559487d5ac24071a1f8589f9c026b/packages/%40vue/cli-plugin-babel/__tests__/transpileDependencies.spec.js#L19, worked for me
await project.write(
"babel.config.js",
`module.exports = { presets: [
["@vue/babel-preset-app", { targets: { ie: 9 } }]
]}`
);
if [ "$BABEL_8_BREAKING" = true ] ; then | ||
# Babel 8 defaults to "default, not ie 11", but this breaks vue-cli's tests | ||
# which expect different ES features to be compiled. | ||
patch -p1 < "$PWD"/../../patches/vue-cli-babel-8.patch |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ended up doing a patch, it feels less hacky than a regexp.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sounds good, noticed vue-cli had one too!
cc @sodatea This is an expected Babel 8 breaking change and I don't think that there is nothing you need to do in I'm pinging you just to let you know about this! |
Co-authored-by: Henry Zhu <hi@henryzoo.com>
const a = new Map() | ||
`.trim(), { | ||
babelrc: false, | ||
+ targets: { ie: 9 }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Q: Why should we patch given that the preset has specified { node: 'current' }
in targets option?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh right, it's not necessary. It was my first attempt at fixing these tests, and since it reduced the number of failure I didn't realize it's not what caused them.
There are some failures but they are all unrelated, there is probably some problem with the registry. |
The vue-cli e2e test passed! |
Cool! Thanks for letting me know! |
The failure was introduced by #12989.