Comments (7)
I think you will add
require.extensions[".server.js"] = require.extensions[".js"];
on node.js side to get node.js load the .server.js
extension.
and you will add
resolve: {
extensions: ["", ".client.js", ".js"]
}
to the webpack config to make it load the .client.js
extension.
So they all load the correct files, all you still need is a security check for not including .server.js
files.
In the current version this is not possible, but as webpack returns a list of files included, you may scan it for .server.js
files.
I think this is a cool feature and we can add a config options resolve.exclude = [/\.server\.js$/]
which exclude files from the bundle.
from webpack.
Unfortunately your extensions solution doesn't work since node trims everything before the last dot. That's the problem. But maybe I can add a loader for webpack that switches every .server.js
to a .client.js
module.
from webpack.
C:\Users\Sokrates\Eigene Repos\test7>node -v
v0.8.1
C:\Users\Sokrates\Eigene Repos>mkdir test7
C:\Users\Sokrates\Eigene Repos>cd test7
C:\Users\Sokrates\Eigene Repos\test7>echo module.exports = 1 > test.server.js
C:\Users\Sokrates\Eigene Repos\test7>node
> require("./test")
Error: Cannot find module './test'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at repl:1:2
at REPLServer.self.eval (repl.js:111:21)
at Interface.<anonymous> (repl.js:250:12)
at Interface.EventEmitter.emit (events.js:88:17)
at Interface._onLine (readline.js:183:10)
at Interface._line (readline.js:502:8)
> require.extensions[".server.js"] = require.extensions[".js"];
[Function]
> require("./test")
1
from webpack.
Oh sorry ... I must have done something wrong :)
But I also like the loader that switches to a .client
module if present and throws an error if not. In this case the IDE support is better (because in your solution WebStorm is complaining that this file doesn't exist - which is right ;) )
from webpack.
hey, take a look at a newly added feature to postprocess resolved filenames:
resolve: {
postprocess: {
normal: [
function(filename, cb) {
callback(null, filename.replace(/\.server\.js$/, ".client.js"));
}
]
}
}
postprocessors can do async stuff, i. e. you can check file existance, file content or anything else.
from webpack.
I'll dig that, thanks! What's about the normal
-thing? Could you create a documentation of that?
from webpack.
I'll do this.
normal
normal require (targets a file)context
require.context or similar (targets a folder)
from webpack.
Related Issues (20)
- Module Federation - Some chunks are not loaded when navigating from the Remote module to the Host module
- failed to import ffmpeg-core.js HOT 1
- Webpack 5 doesnt generate the chunks of imports HOT 1
- Error: Cannot find module 'webpack-cli/package.json' HOT 2
- Unable to bust cache of module federation remotes....
- Re-exported Ant Design components don't have same style with the original components
- failed to import ffmpeg-core.js HOT 3
- DllPlugin: When processing multiple chunks, does the `path` option must have a string template?
- Webpack BannerPlugin with `raw` option should put `use strict` on the very first line HOT 10
- After webpack 5 migration not able to use local packages in a mono repo
- 95% emitting emit phase takes much longer in Node >=16
- Plugin apply not working for multi compiler HOT 2
- packages/tailwindcss/src/compile.ts HOT 1
- Current error handling mainly involves calling the `onInvalidCandidate` callback function to handle invalid candidates, and printing corresponding error messages to the console.
- [5.91.0] "Fixed fs types" breaks `outputFileSystem` compatibility with `memfs` HOT 6
- Using `[name]` within `output.library`, the correct value isn't utilized in the source map namespace HOT 1
- Not found node_modules/@angular/common/bundles/common-http.umd.js
- webpack5.90.0 Modifying files in the node_modules directory (local component library) cannot trigger hot updates HOT 1
- Delete this. HOT 1
- how to make webpack recompile on dev mode with cache on? 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 webpack.