factor-bundle
factor-bundle copied to clipboard
Broken build when requiring moment-timezone and moment
factor-bundle
creates broken bundles when required modules have linked dependencies. This happens for example when installing moment-timezone
and afterwards moment
. So moment
exists two times in the node_modules
folder, once for moment-timezone
and once in moment
. This seems to break browserify. When installing the modules the other way around the bundle does not break (this time there is only one moment
).
I don't know if this is more of a problem with the way npm install modules when they have duplicate dependencies or if this is a problem with factor bundle.
I set up a test case over at: https://github.com/davidlanger/factor-bundle-moment-timezone
@davidlanger Are your modules flattened with either npm dedupe
or using npm@3
?
Neither. npm -v
returns 2.14.6 and nothing more than what I described. Test case quoted below (browserify and factor-bundle have to be available)
mkdir -p bundle
# remove the installed moment modules
rm -r node_modules/moment*
# install moment first, moment-timezone second
npm install [email protected]
npm install [email protected]
# bundle all the things!
browserify entry1.js entry2.js -p [ factor-bundle -o bundle/entry1.js -o bundle/entry2.js ] -o bundle/common.js
# test if the bundled stuff works
cat bundle/common.js bundle/entry1.js | node && echo "WORKS"
# works!
# remove the installed moment modules
rm -r node_modules/moment*
# install moment-timezone first, moment second
npm install [email protected]
npm install [email protected]
# bundle all the things!
browserify entry1.js entry2.js -p [ factor-bundle -o bundle/entry1.js -o bundle/entry2.js ] -o bundle/common.js
# test if the bundled stuff works
cat bundle/common.js bundle/entry1.js | node
# does not work!