Closed dpikt closed 5 years ago
Or fat arrows should be replaced with function keyword.
How would this library get bundled into a web project without using a build system?
It wouldn't, as far as I know. I'm personally using webpack. However, it is standard practice to provide a transpiled dist
or lib
folder of your library rather than requiring developers to transpile modules themselves. If not offering legacy support, the package should include a note in the readme like this.
It wouldn't, as far as I know. I'm personally using webpack.
Exactly my point.
However, it is standard practice to provide a transpiled
dist
orlib
folder of your library rather than requiring developers to transpile modules themselves. If not offering legacy support, the package should include a note in the readme like this.
No this is a horrible and painful anti-pattern that should stop. Anyone who recommends this doesn't fully understand the implications of doing so. This is like arguing that a car should always be pulled around by a horse. Node.js libraries can only be used in the browser with tooling. By pre-compiling code, you are actually making it harder for downstream libraries to streamline your code in the browser. This will become even evident as ES modules gain prominence, and pre-compiling strips them of all of their benefits.
Firstly, I agree that using pre-compiled code is suboptimal. The ideal solution is to make multiple distributions available so that the consumer can decide for themselves which version of the package they need. This is what other major libraries are doing in order to maintain browser support while offering opt-in module support.
Secondly, your comments this issue as well as https://github.com/jonschlinkert/dashify/issues/9 have been disingenuous and rude. I expect better from a member of the open source community- I come here to collaborate, not get called names. I will be migrating away from using this library since it's clear that adhering to best practices for isomorphic JS code is not your top priority.
Edit: To give you a sense of what an outlier this library is- I'm working on a project with the following dependencies:
"dependencies": {
"axios": "^0.16.2",
"babel-polyfill": "^6.26.0",
"better-queue": "^3.8.10",
"bourbon": "^4.2.7",
"bourbon-neat": "^1.9.0",
"classnames": "^2.2.6",
"compression": "^1.7.3",
"cookies": "^0.7.1",
"date-fns": "^1.29.0",
"dot-index-webpack-plugin": "^5.0.0",
"express": "^4.16.3",
"express-enforces-ssl": "^1.1.0",
"figaro-js": "^1.1.1",
"formik": "^1.3.1",
"fs-extra": "^7.0.0",
"http-proxy-middleware": "^0.18.0",
"humps": "^2.0.1",
"localStorage": "^1.0.4",
"lodash": "^4.17.10",
"mini-css-extract-plugin": "^0.4.1",
"prismic-javascript": "^1.5.0-beta.1",
"prismic-reactjs": "^0.3.1",
"prop-types": "^15.6.1",
"prop-types-exact": "^1.2.0",
"query-string": "^5.0.0",
"react": "^16.0.0",
"react-dom": "^16.0.0",
"react-helmet": "^5.2.0",
"react-router": "^4.2.0",
"react-slick": "^0.23.1",
"react-static": "^5.0.0",
"recompose": "^0.27.1",
"redux": "^3.6.0",
"request": "^2.87.0",
"sass-loader": "^7.0.3",
"slick-carousel": "^1.8.1",
"webpack": "^4.16.5",
"wowjs": "^1.1.3"
}
Every single one of these packages offers full browser support. This library was the only one that broke my code.
I come here to collaborate, not get called names
I'm sorry that we disagree, but this is false. I didn't call anyone names, and I answered your very strongly opinionated OP with an equally opinionated and unemotional reply, 100% void of any name calling. I did the same with the other issue you linked to. If you - or the person who created the other issue - don't want replies like this, then don't create contentiously worded issues that sound like you're making statements of fact. At least pretend that you want to have a discussion.
From your wording, you did not want to have a discussion, you were making a command: Lib contains es6 features and should be built with babel to support all browsers.
That's okay, I don't take offense from your tone. I do, however, get anxiety knowing that this terrible anti-pattern is being promoted.
Secondly, your comments this issue as well as #9 have been disingenuous and rude.
You do realize that you are actually calling me names here, right? Also, I have to assume that you don't know what disingenuous means. I meant every word I said.
This is a very odd issue. Any person with an internet connection can easily review this issue, and the one you linked to, and all revisions of both, and see that there literally is not one place that I have ever called anyone a name. I don't do that.
I come here to collaborate, not get called names
Um.
Lib contains es6 features and should be built with babel to support all browsers.