-
Notifications
You must be signed in to change notification settings - Fork 10.3k
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
Added a CLI flag that lets you change the default pages path from ./pages
to something else
#391
Conversation
Your experience has validated a growing conclusion that Webpack/Babel, while powerful, have a lot of hidden assumptions with really really spiky edges. I like Webpack and appreciate how much it's enabled me to do but I totally get people who hate it. It doesn't protect you very well. Anyway, one of spiky edges seems to be don't pull from outside the webpack/babel root — which you ran into and which I just ran into trying to setup a Gatsby site for react-spinkit. The react component requires the css for the module but when I tried importing that component into the Gatsby site (in a I think instead what we should do is add a plugin that can copy src files into Gatsby. So in the "create a docs site for a open source project" scenario like react-spinkit, Gatsby on starting would just copy the src directory into a directory (hidden by .gitignore) and go from there. The plugin would include a watcher so while you're developing the component code, the docs site would still hot-reload. |
I think from a user point of view, not having the possibility to change the "content" folder very easily is really weird. Phenomic handle this via a simple option (that can obviously be configured via CLI like all other options). |
@MoOx that option is still on the table. My comment was specifically directed towards @steveluscher's (and mine) particular use case, pulling in files from outside the site root. |
I think this is something that doesn't belong on the CLI, but rather the site's configuration. It doesn't make sense to have to remember which flags you put into the CLI for a specific project. I think for now this config option should live in Plus, what happens when gatsby can support more than just a file system as a source? The information required to process a source for the gatsby pipeline is almost assuredly more than something that can be passed as a simple string in a command line flag.
|
And yeah, after banging my head against this stupid little site for an hour or whatever, I just copied react-spinkit's src into the Gatsby folder and it just worked. Sheesh. |
@benstepp +1. I'll be making some specific proposals soon. Prototyping stuff at the moment... |
So, this is not necessarily a good idea, or even something desirable, but I'd like to put up this PR for posterity/discussion.
This PR adds a CLI flag that you can use to change the default ‘pages path’ from
./pages
to something else.This was originally developed so that I could vacuum up pages from a location outside the site root (ie. to use the same site builder to build sites from different ‘pages’ sources). Unfortunately, as soon as you start to require files outside the project root, everything starts to fall apart (eg. Webpack can no longer resolve ‘babel-loader’ because
node_modules
is not in the path).Feel free to make this better, provide an argument for why the pages path shouldn't be configurable, or simply close this.