re: An introduction to Vue.js - Chapter 1 - Basic Setup VIEW POST


I like the way using ES6 modules

Sadly you're not just using ES6 modules, because you're also doing this:

import template from './hello.html';

ES6 modules can't load HTML files. This is an extension to ES6 modules. A custom extension created in Webpack's ecosystem but ultimately custom. Which means you might think you're just using JavaScript, but actually you're not.

The problem here is that Webpack could be a thing of the past in a couple of years and you'd end up with code that needs to be fixed before updating the project. I'm really not a fan of that.

I'd rather use .vue files, at least the intent is clear. Will you explain how to use them in a future chapter?


You are right. These imports are not fully ES6. That's why we needed to include the raw-loader. Since this is bundled by webpack you will not get the possibility of using the full functionality of ES6 modules (e.g. load when it is need) out of the box. Still it looks and feels like writing code for ES6 modules.

Some words about your argument Webpack could get a thing of the past in some years: It is the same with everything when we are talking about library driven development. Who knows whether Vue itself will get not maintained anymore? Then the whole code will get useless. There is never a certain guarantee that we can use the tools forever (especially in JS development).

It was not planned that I describe how to use .vue files since I personally do not work with them for certain reasons. But I will explain it in a later chapter and show you my opinion.

Thanks for your feedback.


Some words about your argument Webpack could get a thing of the past in some years: It is the same with everything when we are talking about library driven development.

Sure, Vue could be a goner too, but the same Webpack stains in JavaScript code could be seen in other frameworks. The main difference is that while Vue (or React or whatever) are the core of possibly long spanning projects, Webpack is just a bundling tool - a devDependency. Something that should allow us to replace it entirely if we feel like it. So why are we adapting our core code to use a bundler, and not vice versa? Why are we locking ourselves into Webpack's ecosystem?

If I take an AngularJS project from 2012, I could switch its bundling system from Grunt to Gulp or even Webpack without touching the application's source code. It's not the same if I import html, though.

That's why I'd use .vue files instead: it's a specification from Vue, not from Webpack. So there's vue-loader for Webpack, but there's also vueify for Browserify.

Now I got your point. That is an issue that could come up at some point in the future. I agree to your argumentation but not completely that you should not use the Webpack ecosystem to write your code. I like writing code within that ecosystem and I would have no problem with adapting the code when my ecosystem changes.

But I really respect your arguments against using Webpack.

Thanks for that great sharing :)

you should not use the Webpack ecosystem

Well, it's not even that, actually. Webpack is fine as long as I don't bind my code to it 🙃

Yeah I don't have a problem with that but of course some people would say it is a huge pain point. I think I found a setup with browserify. I will try it out within the next day and will give it an additional chapter.

code of conduct - report abuse