-
Notifications
You must be signed in to change notification settings - Fork 17
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
Call for new maintainers/collaborators #108
Comments
Hey @simonwalsh -- I'm interested in integrating the work you've done into the |
Just wanted to leave a note here -- @simonwalsh and I met with @t-kelly a couple of days ago to discuss this further and we’ve all agreed this would be the best path forward for both projects. @t-kelly has already begun work in this direction, so stay tuned for what's next. @t-kelly, as we’ve said before, if there’s anything we can help with please let us know, we’re glad to help. |
@simonwalsh @t-kelly After using shopify-pipeline heavily for 2 months with collaborators on a largish shopify-plus customer's project, I'm not sure that it's the right path forward. For point of reference, I've also worked with a hand-rolled gulp based build system in the past. And, I'm probably going to be replacing shopify-pipeline with another gulp-based build system, handrolled to work on the shopify-pipeline directory structure so that I don't have to move files around. Again. Points of Pain
** NOTES about webpack watch + custom plugins: |
😢
lol, that's a classic one, apparently the underlying shopify-node api allows to pull those changes, but its best to educate the client to not do hotfixes on their own or give them tools to edit things without touching code (sections, superfields, etc) that's what has worked best for us to prevent the clients from touching the rendered code. tl;dr shopify development is messy/hacky but we have to do our best with the tools we have. PS: I did a mixture of using webpack strictly for JS and everything else with gulp, maybe it can work for you |
Always-emitting js is solved by downgrading back to webpack 2.x, there are current open issues about this for webpack 3.x. I found out about yarn link, which is speeding up my experimentation a lot! You have to add:
for it to work. And, I have sucessfully turned off filename hashes:
Part of what was frustrating me there was a zombie node watch process! It was taking just a little longer than the current watch, so it would overwrite the non-hash-filename version with the hash-filename version :/. No other signs of it running. I've decided to give up on writing a webpack plugin to decipher what files actually changed & upload them to shopify, and instead just write a separate watcher that maintains a cache of md5 hashes of files in the |
@t-kelly If you do use a pure webpack build system, I recommend not using filename hashing. Shopify's CDN is already handling caching for us, so it's pointless, and when I turned it off build speed increased by around an order of magnitude. Apparently it might be tricky to get sourcemaps working without filename hashing, but...they weren't working for me since the beginning anyway. |
I don't understand the tunnel part you're saying, you mean a proxy? Currently everything works as a proxy without any live reload, so basically everything from
For existing projects I usually download the theme from shopify, run the scaffold and then just place everything accordingly. (images in images folder, fonts in fonts folder, js in js folder....) Edit: just googled the localtunnel thing, seems good, but i don't really see the point when your dev theme is also accessible via the shopify admin on the preview section You can even share it with:
|
This is how I got sourcemaps to work with shopify and webpack: |
@Mike3run with browserify, the tunnel would just mean that if you were collaborating with someone not on your LAN, that their window would refresh when you made changes. As opposed to HMR, which results in a completely broken site for people who can't see your localhost. |
Ohh I see, well you can turn it on and try it, I don't have fast internet so when I turned it on it say it works but I guess its not uploading fast enough so Im getting a timeout issue on the tunnel url. I'm more opinionated towards each developer having its own |
@Mike3run we use multiple themes, but the sticking point is more demoing & making changes with the end client. |
Maybe localtunnel doesn't work, I tested a react app and it works but the browsersync with proxy returns a 504 timeout error maybe related to: I usually give the clients the |
Seems like the way to go is to use ngrok and not localtunnel 🤔 |
Hey - to speed up working with a local version of Shopify-Pipeline, you can update your project {
"scripts": {
"serve": "../shopify-pipeline/cli.js serve",
"build": "../shopify-pipeline/cli.js build",
"deploy": "../shopify-pipeline/cli.js build --deploy",
"test": "../shopify-pipeline/cli.js test --coverage"
}
} This way, no need to update version, publish packages or deal with Also, could you please discuss tunnelling in the issue already opened for that, or open new issues for any new issues that arise - thank you. |
@lastobelus lots of great feedback I'll take into consideration when developing Slate v1. Will be releasing a public Alpha of it in the following week or two. Will ping this channel when it happens. |
@t-kelly I let my own rant inspire me to spend a day messing with shopify-pipeline (in my fork, and got turnaround times with webpack watch mode to under 10 seconds for js, under 5 seconds for css, and under 3 seconds for snippet changes. I used node limiter to take advantage of the api leaky bucket rate limiting and upload changes in parallel. It maintains a cache of file md5s, so that it only uploads files that have actually changed, which once I turned off filename hashing is down to a reasonable number per change. I did a little testing of source maps and in watch mode I added I tried I strongly recommend using something like my uploader to do the uploads, in my tests OMM parallelizing shopify-themekit (calling it once per file in parallel) offered benefits all the way up to the api bucket size, and using node limiter makes it dirt simple. I watched memory consumption while doing 80 concurrent uploads, and it remained reasonable OMM. My uploader does use node-watch to do a recursive watch of the |
We are looking for maintainers and contributors as Dynamo as a group will not be continuing active maintainance and features development for Shopify Pipeline (and it's scaffolder create-shopify-pipeline).
If you are interested in doing so, please comment here and I will get in touch.
We will keep this project in the Dynamo organization if/when/until we need to move it away so as not to break any projects depending on it.
Let's keep Shopify Pipeline alive!
The text was updated successfully, but these errors were encountered: