Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

File Extension Already Occupied #51

Closed
dtothefp opened this issue Feb 18, 2016 · 12 comments
Closed

File Extension Already Occupied #51

dtothefp opened this issue Feb 18, 2016 · 12 comments

Comments

@dtothefp
Copy link

This error just started showing up and I'm not sure what it means?

verion: 2.2.29

[Error: File extension "jpeg" is already occupied by require-hacker]

config

{
    "debug": false,
    "webpack_assets_file_path": "../dist/webpack-main-stats.json",
    "assets": {
        "images": {
            "extensions": [
                "jpeg",
                "jpg",
                "png",
                "gif",
                "svg"
            ]
        },
        "styles": {
            "extensions": [
                "css",
                "scss"
            ]
        }
    }
}
const tools = new WebpackIsomorphicTools(toolsConfig).development(isDev);
tools.server(statsDir).then //...
@catamphetamine
Copy link
Owner

give me the full log, maybe I can get an idea

@dtothefp
Copy link
Author

ok

[webpack-isomorphic-tools] [debug] instantiated webpack-isomorphic-tools with options {
  "debug": true,
  "webpack_assets_file_path": "../dist/webpack-main-stats.json",
  "assets": {
    "images": {
      "extensions": [
        "jpeg",
        "jpg",
        "png",
        "gif",
        "svg"
      ]
    },
    "styles": {
      "extensions": [
        "css",
        "scss"
      ]
    }
  },
  "webpack_stats_file_path": "webpack-stats.json"
}
[webpack-isomorphic-tools] [debug] entering development mode

DEBUG:   hfa_bdu Running Isomporphic Tools +238ms
[webpack-isomorphic-tools] [debug] registering require() hooks for assets
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.jpeg
[require-hook] [debug] Hooking into *.jpeg files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.jpg
[require-hook] [debug] Hooking into *.jpg files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.png
[require-hook] [debug] Hooking into *.png files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.gif
[require-hook] [debug] Hooking into *.gif files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.svg
[require-hook] [debug] Hooking into *.svg files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.css
[require-hook] [debug] Hooking into *.css files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.scss
[require-hook] [debug] Hooking into *.scss files loading

@catamphetamine
Copy link
Owner

so, no error so far

@dtothefp
Copy link
Author

sorry messed that up

options {
  "debug": true,
  "webpack_assets_file_path": "../dist/webpack-main-stats.json",
  "assets": {
    "images": {
      "extensions": [
        "jpeg",
        "jpg",
        "png",
        "gif",
        "svg"
      ]
    },
    "styles": {
      "extensions": [
        "css",
        "scss"
      ]
    }
  },
  "webpack_stats_file_path": "webpack-stats.json"
}
[webpack-isomorphic-tools] [debug] entering development mode
webpack_isomorphic_tools {
  hooks: [],
  cached_assets: [],
  options:
   { debug: true,
     webpack_assets_file_path: '../dist/webpack-main-stats.json',
     assets: { images: [Object], styles: [Object] },
     webpack_stats_file_path: 'webpack-stats.json',
     development: true },
  log:
   Log {
     options: { debug: true },
     preamble: '[webpack-isomorphic-tools]' } }
[webpack-isomorphic-tools] [debug] registering require() hooks for assets
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.jpeg
[require-hook] [debug] Hooking into *.jpeg files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.jpg
[require-hook] [debug] Hooking into *.jpg files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.png
[require-hook] [debug] Hooking into *.png files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.gif
[require-hook] [debug] Hooking into *.gif files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.svg
[require-hook] [debug] Hooking into *.svg files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.css
[require-hook] [debug] Hooking into *.css files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.scss
[require-hook] [debug] Hooking into *.scss files loading
****BEFORE****

DEBUG:   hfa_bdu Running Isomporphic Tools +242ms
[webpack-isomorphic-tools] [debug] registering require() hooks for assets
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.jpeg
[require-hook] [debug] Hooking into *.jpeg files loading
[runner]: Dev Error [Error: File extension "jpeg" is already occupied by require-hacker]

@catamphetamine
Copy link
Owner

so, you are running webpack-isomorphic-tools twice.
that's the cause fo the error.

@dtothefp
Copy link
Author

hmmm...I'm doing this

const tools = new WebpackIsomorphicTools(toolsConfig).development(isDev);
tools.server(statsDir).then

is that a problem?

@catamphetamine
Copy link
Owner

That shouldn't be a problem.
Try to search for new WebpackIsomorphicTools in your project, maybe you are calling it in more than one place.

@dtothefp
Copy link
Author

ok weird, this just started happening so I'm not sure what is going on?

@catamphetamine
Copy link
Owner

what has changed?

@dtothefp
Copy link
Author

not sure, I'll let you know if I figure it out. Just rebased off another persons branch so maybe something crazy happened

@dtothefp
Copy link
Author

haaa...well just in case you ever wondered don't do this. I must have been clobbering something on global that was messing with ismorphic tools...

var jsdom = require('jsdom');

var doc = jsdom.jsdom('<!doctype html><html><body></body></html>');
var win = doc.parentWindow;

global.document = doc;
global.window = win;
Object.assign(global, win);

instead do this

global.document = doc;
global.window = win;
global.navigator = win.navigator;

@catamphetamine
Copy link
Owner

FYI
I'm posting this in every issue and PR to notify whoever may be interested:
today I've released an alternative helper library called universal-webpack.
It takes a different approach than webpack-ismorphic-tools and instead of hacking Node.js require() calls it just compiles all code with target: 'node' webpack configuration option.
As a result, all Webpack plugins and features are supported.
If you think you might need that here's an example project:
https://github.com/halt-hammerzeit/webpack-react-redux-isomorphic-render-example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants