Comments (11)
Can't we all just get along.
@JedWatson can we just export like normal, but then just recommend people to use a wrapper that does it properly for them?
In the end, this is a node package.
IMHO, anyway.
from classnames.
@kevinsimper can you please clarify what you mean by "broke"? and how it should behave in that case?
Looks to me like fixing this might be as simple as putting this condition first:
if (typeof module !== 'undefined' && module.exports)
from classnames.
I'm also curious about what broke
means here, this is just a very common wrapper, used everywhere. And I'm also curious about the scenario of having both amd and commonjs on the same page.
Cheers!
from classnames.
If you are on a webpage where you both have requirejs and use browserify, then the module.exports will never run and therefore the browserify version will not work.
Because both amd and module can be defined on the same page. So the else if
prohibites the use of both.
I can agree that it is stupid to use both on the same page, but sometimes its something you can not decide.
from classnames.
@kevinsimper can you confirm whether my proposed change would work, or would you expect it to expose both CommonJS and AMD? A PR that you've confirmed meets your requirements would be welcome.
from classnames.
I'm seeing this issue when using react-boostrap, which includes classnames as a dependency. I'm also using browserify and babelify to bundle.
Uncaught Error: Mismatched anonymous define() module: function () {
return classNames;
}
This is fixed by flipping the conditions, as @JedWatson suggests:
if (typeof module !== 'undefined' && module.exports) {
module.exports = classNames;
} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
// AMD. Register as an anonymous module.
define(function () {
return classNames;
});
} else {
window.classNames = classNames;
}
from classnames.
I ran into the same problem after #41 merged (v2.1.3), but it works in v2.1.2. My use case is using requirejs but I saw classnames always run in module.export at
https://github.com/JedWatson/classnames/blob/master/index.js#L38
therefore, it doesn't execute second AMD statement and return undefined every time.
from classnames.
Sorry, @JedWatson ❤️
from classnames.
@JedWatson is this fixed and published?
from classnames.
I download bower classnames today:
if (typeof module !== 'undefined' && module.exports) {
console.log("undefined");
module.exports = classNames;
} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
// register as 'classnames', consistent with npm package name
define('classnames', [], function () {
return classNames;
});
} else {
console.log("window")
window.classNames = classNames;
}
made the change suggested by @dcocchia and it worked
if (typeof module !== 'undefined' && module.exports) {
console.log("undefined");
module.exports = classNames;
} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
// register as 'classnames', consistent with npm package name
define(function () {
return classNames;
});
} else {
console.log("window")
window.classNames = classNames;
}
from classnames.
I'm assuming this was resolved, please comment if otherwise.
from classnames.
Related Issues (20)
- why not using one build tool for publish the npm package? HOT 2
- Incomplete type signature for classnames/bind HOT 2
- Advanced typing for classnames/bind HOT 4
- Explain to me about "cx" HOT 1
- Getting error says 'this' context of type 'void' is not assignable HOT 4
- [Question] When I used Object's value to computed key, what happened? HOT 2
- SyntaxError: Unexpected end of script (Mobile Safari) HOT 5
- When no classes are selected, classNames should return null HOT 5
- Vulnerable dependencies (indirect security issues) HOT 1
- How to erase or replace the properties of the conditional class from external component? HOT 1
- why number can be a className HOT 1
- Can we add exports field for this package? HOT 4
- Need a maintainer? HOT 7
- Preparing for version 3.0 HOT 9
- Should we support CommonJS for 3.0? HOT 5
- No default export (v2.5.1) HOT 5
- Import from 'classnames' broken since v2.5.0 HOT 5
- Please use GitHub Releases HOT 6
- Unable to do v2 releases HOT 2
- Feature Request: Enhanced Responsive Classnames Support HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from classnames.