Comments (14)
I have found that this works as expected if you also independently require in the file, e.g. an import 'jquery';
somewhere at the top of your bundle (before you import other plugins or whatever needs global jQuery to be available). The "problem" is just that simply having the expose-loader
rule in your webpack config does not actually cause jquery to be required in anymore; it just exposes it globally when it is subsequently required in. (I use quotes around "problem" because this seems like it may be an intentional behaviour change in webpack 4 -- I noticed the same change between v3 and v4 with how CommonsChunk
/splitGroup
modules work.) The inline import
syntax works because that's actually putting a require
directly into your bundle.
from expose-loader.
Is this gonna be updated? Because of this I can't upgrade to webpack v4. or any workaround?
@krunalshah68, the workaround I found is to use it inline rather than in the webpack.config. In my case, I have something like this in the entry file:
import "expose-loader?$!jquery"; import "expose-loader?jQuery!jquery"
from expose-loader.
Hi, any updates about this?
from expose-loader.
@eerrecalde PR welcome
from expose-loader.
@evilebottnawi Is that mean "we won't fix it" or "we don't have the time at the moment but we'll eventually fix it / have a look at it"?
Thanks!
from expose-loader.
we don't have the time at the moment but we'll eventually fix it / have a look at it
from expose-loader.
That sounds great 👍 Thanks!
from expose-loader.
module: {
rules: [
{
test: require.resolve('knockout'),
use: [{
loader: 'expose-loader',
options: 'ko'
}]
},
and
entry: {
vendor: ['expose-loader?ko!knockout',
does not work as well.
from expose-loader.
Is this gonna be updated? Because of this I can't upgrade to webpack v4. or any workaround?
from expose-loader.
@eerrecalde Thanks for the response.
But the thing is that I'm having a non-spa python flask based website so I want to have it configured in webpack only. Any workaround for this?
from expose-loader.
I can confirm that this appears to be an issue in my case as well.
I cannot get the alternate webpack.config
approach to work with Webpack (v4.29.0) but using the inline loader syntax works great as @eerrecalde mentioned!
from expose-loader.
Is there any update on this? I have large amounts of legacy JQuery code and I would like to upgrade to webpack 4 but unfortunately I can't install jQuery globally through webpack and I can't import it in the bundle.js as some of the jquery libraries used do not support webpack when they were written.
For now my alternative is simply to call it in my main index.html as a script tag. Which is okay, but would prefer to use webpack here XD
from expose-loader.
+1
from expose-loader.
Fixed in the master
from expose-loader.
Related Issues (20)
- Options missing in third-party loader HOT 34
- Cannot expose ts module since 1.0.0 HOT 4
- Issue with alias while exposing private module HOT 1
- Webpack omits exposed modules when sideEffects are enabled HOT 15
- ! vs | HOT 14
- Cant get new versions of expose-loader to work HOT 8
- Unable to expose jQuery HOT 4
- expose-loader works in Chrome but not FireFox? HOT 9
- Docs Mismatch and Absolutely no "local" Examples HOT 1
- opt out of development thrown error HOT 5
- Exposing a class converts it to an esmodule object HOT 2
- webpack and webpack --watch will get different output HOT 1
- jQuery is not being exposed HOT 5
- Doesn't work as expected when exposing @apollo/client HOT 26
- Customizing the runtime getGlobalThis HOT 2
- Support namespace import
- Exposing ES6 modules without the default property HOT 2
- Webpack sometimes skips modules loaded through expose-loader when tree shaking is enabled HOT 2
- File hashes change between OSs when using expose-loader to replace jQuery and $ HOT 2
- expose-loader not working correctly with webpack 4 HOT 9
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 expose-loader.