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

Only use os.cpus() and filter out core like physical-cpu-count did #142

Merged
merged 4 commits into from
Dec 11, 2017
Merged

Conversation

reel
Copy link
Contributor

@reel reel commented Dec 8, 2017

The problem is with heroku and some CI, the physical-cpu-count linux branch requires a binary and access not provided by these environments.

The problem is with heroku and some CI, the physical-cpu-count linux branch requires a binary and access not provided by these environments.
@reel reel changed the title Only use os.cpus() and filter out core like physical-cpu-count did. fixes #133 Only use os.cpus() and filter out core like physical-cpu-count did Dec 8, 2017
@reel
Copy link
Contributor Author

reel commented Dec 8, 2017

It will fix #133

@@ -86,4 +87,13 @@ for (let key in EventEmitter.prototype) {
WorkerFarm.prototype[key] = EventEmitter.prototype[key];
}

function getNumWorkers() {
const cores = os.cpus().filter(function(cpu, index) {
const hasHyperthreading = cpu.model.includes('Intel');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this really a good assumption? Do all Intel CPUs have hyperthreading?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's the else catchall branch of physical-cpu-count.

I don't know

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also i’m pretty sure AMD’s newer Ryzen cpus have SMT, which is what Intel calls hyperthreading

Copy link
Contributor

@brandon93s brandon93s Dec 9, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is a Gist of the aforementioned physical-cpu-count for reference. The Intel check seems to be the last-ditch effort.

@brandon93s
Copy link
Contributor

Since physical-cpu-count tries to be more accurate than just the Intel check, we could leave it and just fall back to os.cpus() when it fails.

function getNumWorkers() {
  let cores;
  try {
      cores = require('physical-cpu-count');
  } catch (err) {
      cores = os.cpus();
  }
  return cores;
}

@reel
Copy link
Contributor Author

reel commented Dec 9, 2017

Does it throw on Heroku or returns something else?

albinotonnina added a commit to albinotonnina/parcel that referenced this pull request Dec 10, 2017
@reel
Copy link
Contributor Author

reel commented Dec 10, 2017

You will still have that warning, but it does not break?

@albinotonnina
Copy link
Contributor

albinotonnina commented Dec 10, 2017

@reel my bad, I lied! It works!
this parcel: https://github.com/usehenri/parcel

my little heroku app gets built correctly: https://shrouded-ocean-46253.herokuapp.com/

Like you said, warning is still there but it doesn't break.

log

remote:        Installing node modules (yarn.lock)
remote:        yarn install v1.3.2
remote:        [1/4] Resolving packages...
remote:        [2/4] Fetching packages...
remote:        info fsevents@1.1.3: The platform "linux" is incompatible with this module.
remote:        info "fsevents@1.1.3" is an optional dependency and failed compatibility check. Excluding it from installation.
remote:        [3/4] Linking dependencies...
remote:        [4/4] Building fresh packages...
remote:        $ yarn build
remote:        yarn run v1.3.2
remote:        $ parcel build index.html --no-minify  --public-url ./
remote:        ⏳  Building...
remote:        
remote:        lscpu: failed to determine number of CPUs: /sys/devices/system/cpu/possible: No such file or directory
remote:        ⏳  Building index.html...
remote:        ⏳  Building styles.css...
remote:        ⏳  Building index.js...
remote:        ⏳  Building patch.js...
remote:        ⏳  Building App.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building patch.js...
remote:        ⏳  Building Intro.js...
remote:        ⏳  Building Outro.js...
remote:        ⏳  Building Scrollama.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building react.production.min.js...
remote:        ⏳  Building react.development.js...
remote:        ⏳  Building react-dom.production.min.js...
remote:        ⏳  Building react-dom.development.js...
remote:        ⏳  Building patch.prod.js...
remote:        ⏳  Building patch.dev.js...
remote:        ⏳  Building index.prod.js...
remote:        ⏳  Building index.dev.js...
remote:        ⏳  Building shim.js...
remote:        ⏳  Building runtime.js...
remote:        ⏳  Building escape.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building emptyObject.js...
remote:        ⏳  Building emptyFunction.js...
remote:        ⏳  Building checkPropTypes.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building warning.js...
remote:        ⏳  Building invariant.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building window.js...
remote:        ⏳  Building ScrollLayout.js...
remote:        ⏳  Building scrollama.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building EventListener.js...
remote:        ⏳  Building getActiveElement.js...
remote:        ⏳  Building ExecutionEnvironment.js...
remote:        ⏳  Building shallowEqual.js...
remote:        ⏳  Building containsNode.js...
remote:        ⏳  Building focusNode.js...
remote:        ⏳  Building AppContainer.js...
remote:        ⏳  Building hyphenateStyleName.js...
remote:        ⏳  Building camelizeStyleName.js...
remote:        ⏳  Building es6.object.create.js...
remote:        ⏳  Building es6.object.define-property.js...
remote:        ⏳  Building es6.object.define-properties.js...
remote:        ⏳  Building es6.object.get-own-property-descriptor.js...
remote:        ⏳  Building es6.object.get-prototype-of.js...
remote:        ⏳  Building es6.object.keys.js...
remote:        ⏳  Building es6.object.get-own-property-names.js...
remote:        ⏳  Building es6.object.freeze.js...
remote:        ⏳  Building es6.object.seal.js...
remote:        ⏳  Building es6.object.prevent-extensions.js...
remote:        ⏳  Building es6.object.is-frozen.js...
remote:        ⏳  Building es6.object.is-sealed.js...
remote:        ⏳  Building es6.object.is-extensible.js...
remote:        ⏳  Building es6.object.assign.js...
remote:        ⏳  Building es6.object.is.js...
remote:        ⏳  Building es6.symbol.js...
remote:        ⏳  Building es6.object.set-prototype-of.js...
remote:        ⏳  Building es6.object.to-string.js...
remote:        ⏳  Building es6.function.name.js...
remote:        ⏳  Building es6.function.has-instance.js...
remote:        ⏳  Building es6.parse-int.js...
remote:        ⏳  Building es6.parse-float.js...
remote:        ⏳  Building es6.number.constructor.js...
remote:        ⏳  Building es6.number.to-fixed.js...
remote:        ⏳  Building es6.function.bind.js...
remote:        ⏳  Building es6.number.to-precision.js...
remote:        ⏳  Building es6.number.epsilon.js...
remote:        ⏳  Building es6.number.is-finite.js...
remote:        ⏳  Building es6.number.is-integer.js...
remote:        ⏳  Building es6.number.is-nan.js...
remote:        ⏳  Building es6.number.is-safe-integer.js...
remote:        ⏳  Building es6.number.max-safe-integer.js...
remote:        ⏳  Building es6.number.min-safe-integer.js...
remote:        ⏳  Building es6.number.parse-float.js...
remote:        ⏳  Building es6.number.parse-int.js...
remote:        ⏳  Building es6.math.acosh.js...
remote:        ⏳  Building es6.math.asinh.js...
remote:        ⏳  Building es6.math.atanh.js...
remote:        ⏳  Building es6.math.cbrt.js...
remote:        ⏳  Building es6.math.clz32.js...
remote:        ⏳  Building es6.math.cosh.js...
remote:        ⏳  Building es6.math.expm1.js...
remote:        ⏳  Building es6.math.fround.js...
remote:        ⏳  Building es6.math.hypot.js...
remote:        ⏳  Building es6.math.imul.js...
remote:        ⏳  Building es6.math.log10.js...
remote:        ⏳  Building es6.math.log1p.js...
remote:        ⏳  Building es6.math.log2.js...
remote:        ⏳  Building es6.math.sign.js...
remote:        ⏳  Building es6.math.sinh.js...
remote:        ⏳  Building es6.math.tanh.js...
remote:        ⏳  Building es6.math.trunc.js...
remote:        ⏳  Building es6.string.from-code-point.js...
remote:        ⏳  Building es6.string.raw.js...
remote:        ⏳  Building es6.string.trim.js...
remote:        ⏳  Building es6.string.iterator.js...
remote:        ⏳  Building es6.string.code-point-at.js...
remote:        ⏳  Building es6.string.ends-with.js...
remote:        ⏳  Building es6.string.includes.js...
remote:        ⏳  Building es6.string.repeat.js...
remote:        ⏳  Building es6.string.starts-with.js...
remote:        ⏳  Building es6.string.anchor.js...
remote:        ⏳  Building es6.string.big.js...
remote:        ⏳  Building es6.string.blink.js...
remote:        ⏳  Building es6.string.bold.js...
remote:        ⏳  Building es6.string.fixed.js...
remote:        ⏳  Building es6.string.fontcolor.js...
remote:        ⏳  Building es6.string.fontsize.js...
remote:        ⏳  Building es6.string.italics.js...
remote:        ⏳  Building es6.string.link.js...
remote:        ⏳  Building es6.string.small.js...
remote:        ⏳  Building es6.string.strike.js...
remote:        ⏳  Building es6.string.sub.js...
remote:        ⏳  Building es6.string.sup.js...
remote:        ⏳  Building es6.date.now.js...
remote:        ⏳  Building es6.date.to-json.js...
remote:        ⏳  Building es6.date.to-iso-string.js...
remote:        ⏳  Building es6.date.to-string.js...
remote:        ⏳  Building es6.date.to-primitive.js...
remote:        ⏳  Building es6.array.is-array.js...
remote:        ⏳  Building es6.array.from.js...
remote:        ⏳  Building es6.array.of.js...
remote:        ⏳  Building es6.array.slice.js...
remote:        ⏳  Building es6.array.sort.js...
remote:        ⏳  Building es6.array.for-each.js...
remote:        ⏳  Building es6.array.map.js...
remote:        ⏳  Building es6.array.filter.js...
remote:        ⏳  Building es6.array.some.js...
remote:        ⏳  Building es6.array.every.js...
remote:        ⏳  Building es6.array.reduce.js...
remote:        ⏳  Building es6.array.reduce-right.js...
remote:        ⏳  Building es6.array.index-of.js...
remote:        ⏳  Building es6.array.last-index-of.js...
remote:        ⏳  Building es6.array.copy-within.js...
remote:        ⏳  Building es6.array.fill.js...
remote:        ⏳  Building es6.array.join.js...
remote:        ⏳  Building es6.array.find.js...
remote:        ⏳  Building es6.array.find-index.js...
remote:        ⏳  Building es6.array.iterator.js...
remote:        ⏳  Building es6.regexp.constructor.js...
remote:        ⏳  Building es6.regexp.to-string.js...
remote:        ⏳  Building es6.regexp.flags.js...
remote:        ⏳  Building es6.regexp.match.js...
remote:        ⏳  Building es6.regexp.replace.js...
remote:        ⏳  Building es6.regexp.search.js...
remote:        ⏳  Building es6.regexp.split.js...
remote:        ⏳  Building es6.array.species.js...
remote:        ⏳  Building es6.promise.js...
remote:        ⏳  Building es6.set.js...
remote:        ⏳  Building es6.weak-map.js...
remote:        ⏳  Building es6.weak-set.js...
remote:        ⏳  Building es6.typed.array-buffer.js...
remote:        ⏳  Building es6.typed.data-view.js...
remote:        ⏳  Building es6.typed.int8-array.js...
remote:        ⏳  Building es6.typed.uint8-array.js...
remote:        ⏳  Building es6.map.js...
remote:        ⏳  Building es6.typed.uint8-clamped-array.js...
remote:        ⏳  Building es6.typed.int16-array.js...
remote:        ⏳  Building es6.typed.uint16-array.js...
remote:        ⏳  Building es6.typed.int32-array.js...
remote:        ⏳  Building es6.typed.uint32-array.js...
remote:        ⏳  Building es6.typed.float32-array.js...
remote:        ⏳  Building es6.typed.float64-array.js...
remote:        ⏳  Building es6.reflect.apply.js...
remote:        ⏳  Building es6.reflect.construct.js...
remote:        ⏳  Building es6.reflect.define-property.js...
remote:        ⏳  Building es6.reflect.delete-property.js...
remote:        ⏳  Building es6.reflect.enumerate.js...
remote:        ⏳  Building es6.reflect.get.js...
remote:        ⏳  Building es6.reflect.get-own-property-descriptor.js...
remote:        ⏳  Building es6.reflect.get-prototype-of.js...
remote:        ⏳  Building es6.reflect.has.js...
remote:        ⏳  Building es6.reflect.is-extensible.js...
remote:        ⏳  Building es6.reflect.own-keys.js...
remote:        ⏳  Building es6.reflect.prevent-extensions.js...
remote:        ⏳  Building es6.reflect.set.js...
remote:        ⏳  Building es6.reflect.set-prototype-of.js...
remote:        ⏳  Building es7.array.includes.js...
remote:        ⏳  Building es7.array.flat-map.js...
remote:        ⏳  Building es7.array.flatten.js...
remote:        ⏳  Building es7.string.at.js...
remote:        ⏳  Building es7.string.pad-start.js...
remote:        ⏳  Building es7.string.pad-end.js...
remote:        ⏳  Building es7.string.trim-left.js...
remote:        ⏳  Building es7.string.trim-right.js...
remote:        ⏳  Building es7.string.match-all.js...
remote:        ⏳  Building es7.symbol.async-iterator.js...
remote:        ⏳  Building es7.symbol.observable.js...
remote:        ⏳  Building es7.object.get-own-property-descriptors.js...
remote:        ⏳  Building es7.object.values.js...
remote:        ⏳  Building es7.object.entries.js...
remote:        ⏳  Building es7.object.define-getter.js...
remote:        ⏳  Building es7.object.define-setter.js...
remote:        ⏳  Building es7.object.lookup-getter.js...
remote:        ⏳  Building es7.object.lookup-setter.js...
remote:        ⏳  Building es7.map.to-json.js...
remote:        ⏳  Building es7.set.to-json.js...
remote:        ⏳  Building es7.map.of.js...
remote:        ⏳  Building es7.set.of.js...
remote:        ⏳  Building es7.weak-map.of.js...
remote:        ⏳  Building es7.weak-set.of.js...
remote:        ⏳  Building es7.map.from.js...
remote:        ⏳  Building es7.set.from.js...
remote:        ⏳  Building es7.weak-map.from.js...
remote:        ⏳  Building es7.weak-set.from.js...
remote:        ⏳  Building es7.global.js...
remote:        ⏳  Building es7.system.global.js...
remote:        ⏳  Building es7.error.is-error.js...
remote:        ⏳  Building es7.math.clamp.js...
remote:        ⏳  Building es7.math.deg-per-rad.js...
remote:        ⏳  Building es7.math.degrees.js...
remote:        ⏳  Building es7.math.fscale.js...
remote:        ⏳  Building es7.math.iaddh.js...
remote:        ⏳  Building es7.math.isubh.js...
remote:        ⏳  Building es7.math.imulh.js...
remote:        ⏳  Building es7.math.rad-per-deg.js...
remote:        ⏳  Building es7.math.radians.js...
remote:        ⏳  Building es7.math.scale.js...
remote:        ⏳  Building es7.math.umulh.js...
remote:        ⏳  Building es7.math.signbit.js...
remote:        ⏳  Building es7.promise.finally.js...
remote:        ⏳  Building es7.promise.try.js...
remote:        ⏳  Building es7.reflect.define-metadata.js...
remote:        ⏳  Building es7.reflect.delete-metadata.js...
remote:        ⏳  Building es7.reflect.get-metadata.js...
remote:        ⏳  Building es7.reflect.get-metadata-keys.js...
remote:        ⏳  Building es7.reflect.get-own-metadata.js...
remote:        ⏳  Building es7.reflect.get-own-metadata-keys.js...
remote:        ⏳  Building es7.reflect.has-metadata.js...
remote:        ⏳  Building es7.reflect.has-own-metadata.js...
remote:        ⏳  Building es7.reflect.metadata.js...
remote:        ⏳  Building es7.asap.js...
remote:        ⏳  Building es7.observable.js...
remote:        ⏳  Building web.timers.js...
remote:        ⏳  Building web.immediate.js...
remote:        ⏳  Building web.dom.iterable.js...
remote:        ⏳  Building _core.js...
remote:        ⏳  Building ReactPropTypesSecret.js...
remote:        ⏳  Building supportsProtoAssignment.js...
remote:        ⏳  Building createClassProxy.js...
remote:        ⏳  Building core.regexp.escape.js...
remote:        ⏳  Building flatten.js...
remote:        ⏳  Building stringifyRules.js...
remote:        ⏳  Building generateAlphabeticName.js...
remote:        ⏳  Building css.js...
remote:        ⏳  Building ServerStyleSheet.js...
remote:        ⏳  Building StyleSheetManager.js...
remote:        ⏳  Building StyledComponent.js...
remote:        ⏳  Building ComponentStyle.js...
remote:        ⏳  Building styled.js...
remote:        ⏳  Building keyframes.js...
remote:        ⏳  Building injectGlobal.js...
remote:        ⏳  Building constructWithOptions.js...
remote:        ⏳  Building ThemeProvider.js...
remote:        ⏳  Building withTheme.js...
remote:        ⏳  Building factoryWithTypeCheckers.js...
remote:        ⏳  Building factoryWithThrowingShims.js...
remote:        ⏳  Building isTextNode.js...
remote:        ⏳  Building Screen1.js...
remote:        ⏳  Building Screen2.js...
remote:        ⏳  Building Screen3.js...
remote:        ⏳  Building Screen4.js...
remote:        ⏳  Building Step1.js...
remote:        ⏳  Building Step2.js...
remote:        ⏳  Building Step3.js...
remote:        ⏳  Building Step4.js...
remote:        ⏳  Building stickyfill.js...
remote:        ⏳  Building AppContainer.prod.js...
remote:        ⏳  Building AppContainer.dev.js...
remote:        ⏳  Building hyphenate.js...
remote:        ⏳  Building camelize.js...
remote:        ⏳  Building _export.js...
remote:        ⏳  Building _object-create.js...
remote:        ⏳  Building _descriptors.js...
remote:        ⏳  Building _object-dp.js...
remote:        ⏳  Building _object-dps.js...
remote:        ⏳  Building _to-iobject.js...
remote:        ⏳  Building _object-gopd.js...
remote:        ⏳  Building _object-sap.js...
remote:        ⏳  Building _to-object.js...
remote:        ⏳  Building _object-gpo.js...
remote:        ⏳  Building _object-keys.js...
remote:        ⏳  Building _object-gopn-ext.js...
remote:        ⏳  Building _is-object.js...
remote:        ⏳  Building _meta.js...
remote:        ⏳  Building _object-assign.js...
remote:        ⏳  Building _same-value.js...
remote:        ⏳  Building _global.js...
remote:        ⏳  Building _has.js...
remote:        ⏳  Building _redefine.js...
remote:        ⏳  Building _fails.js...
remote:        ⏳  Building _shared.js...
remote:        ⏳  Building _set-to-string-tag.js...
remote:        ⏳  Building _uid.js...
remote:        ⏳  Building _wks.js...
remote:        ⏳  Building _wks-ext.js...
remote:        ⏳  Building _wks-define.js...
remote:        ⏳  Building _enum-keys.js...
remote:        ⏳  Building _is-array.js...
remote:        ⏳  Building _an-object.js...
remote:        ⏳  Building _to-primitive.js...
remote:        ⏳  Building _property-desc.js...
remote:        ⏳  Building _object-gopn.js...
remote:        ⏳  Building _object-pie.js...
remote:        ⏳  Building _object-gops.js...
remote:        ⏳  Building _library.js...
remote:        ⏳  Building _hide.js...
remote:        ⏳  Building _set-proto.js...
remote:        ⏳  Building _classof.js...
remote:        ⏳  Building _parse-int.js...
remote:        ⏳  Building _parse-float.js...
remote:        ⏳  Building _cof.js...
remote:        ⏳  Building _inherit-if-required.js...
remote:        ⏳  Building _string-trim.js...
remote:        ⏳  Building _to-integer.js...
remote:        ⏳  Building _a-number-value.js...
remote:        ⏳  Building _string-repeat.js...
remote:        ⏳  Building _bind.js...
remote:        ⏳  Building _is-integer.js...
remote:        ⏳  Building _math-log1p.js...
remote:        ⏳  Building _math-sign.js...
remote:        ⏳  Building _math-expm1.js...
remote:        ⏳  Building _math-fround.js...
remote:        ⏳  Building _to-absolute-index.js...
remote:        ⏳  Building _to-length.js...
remote:        ⏳  Building _string-at.js...
remote:        ⏳  Building _iter-define.js...
remote:        ⏳  Building _string-context.js...
remote:        ⏳  Building _fails-is-regexp.js...
remote:        ⏳  Building _string-html.js...
remote:        ⏳  Building _date-to-iso-string.js...
remote:        ⏳  Building _date-to-primitive.js...
remote:        ⏳  Building _ctx.js...
remote:        ⏳  Building _iter-call.js...
remote:        ⏳  Building _is-array-iter.js...
remote:        ⏳  Building _create-property.js...
remote:        ⏳  Building core.get-iterator-method.js...
remote:        ⏳  Building _iter-detect.js...
remote:        ⏳  Building _html.js...
remote:        ⏳  Building _a-function.js...
remote:        ⏳  Building _strict-method.js...
remote:        ⏳  Building _array-methods.js...
remote:        ⏳  Building _array-reduce.js...
remote:        ⏳  Building _array-includes.js...
remote:        ⏳  Building _add-to-unscopables.js...
remote:        ⏳  Building _array-copy-within.js...
remote:        ⏳  Building _array-fill.js...
remote:        ⏳  Building _iobject.js...
remote:        ⏳  Building _iter-step.js...
remote:        ⏳  Building _iterators.js...
remote:        ⏳  Building _is-regexp.js...
remote:        ⏳  Building _flags.js...
remote:        ⏳  Building _set-species.js...
remote:        ⏳  Building _fix-re-wks.js...
remote:        ⏳  Building _an-instance.js...
remote:        ⏳  Building _for-of.js...
remote:        ⏳  Building _species-constructor.js...
remote:        ⏳  Building _task.js...
remote:        ⏳  Building _microtask.js...
remote:        ⏳  Building _new-promise-capability.js...
remote:        ⏳  Building _perform.js...
remote:        ⏳  Building _promise-resolve.js...
remote:        ⏳  Building _redefine-all.js...
remote:        ⏳  Building _collection-strong.js...
remote:        ⏳  Building _validate-collection.js...
remote:        ⏳  Building _collection.js...
remote:        ⏳  Building _collection-weak.js...
remote:        ⏳  Building _typed.js...
remote:        ⏳  Building _typed-buffer.js...
remote:        ⏳  Building _typed-array.js...
remote:        ⏳  Building _iter-create.js...
remote:        ⏳  Building _own-keys.js...
remote:        ⏳  Building _flatten-into-array.js...
remote:        ⏳  Building _array-species-create.js...
remote:        ⏳  Building _string-pad.js...
remote:        ⏳  Building _defined.js...
remote:        ⏳  Building _object-to-array.js...
remote:        ⏳  Building _object-forced-pam.js...
remote:        ⏳  Building _collection-to-json.js...
remote:        ⏳  Building _set-collection-of.js...
remote:        ⏳  Building _set-collection-from.js...
remote:        ⏳  Building _math-scale.js...
remote:        ⏳  Building _metadata.js...
remote:        ⏳  Building _array-from-iterable.js...
remote:        ⏳  Building createPrototypeProxy.js...
remote:        ⏳  Building bindAutoBindMethods.js...
remote:        ⏳  Building deleteUnknownAutoBindMethods.js...
remote:        ⏳  Building _replacer.js...
remote:        ⏳  Building types.js...
remote:        ⏳  Building interleave.js...
remote:        ⏳  Building StyleSheet.js...
remote:        ⏳  Building nonce.js...
remote:        ⏳  Building createWarnTooManyClasses.js...
remote:        ⏳  Building validAttr.js...
remote:        ⏳  Building isTag.js...
remote:        ⏳  Building isStyledComponent.js...
remote:        ⏳  Building getComponentName.js...
remote:        ⏳  Building determineTheme.js...
remote:        ⏳  Building hash.js...
remote:        ⏳  Building domElements.js...
remote:        ⏳  Building create-broadcast.js...
remote:        ⏳  Building once.js...
remote:        ⏳  Building find.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building stylis.js...
remote:        ⏳  Building isNode.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building anime.min.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building _enum-bug-keys.js...
remote:        ⏳  Building _shared-key.js...
remote:        ⏳  Building _dom-create.js...
remote:        ⏳  Building _ie8-dom-define.js...
remote:        ⏳  Building _object-keys-internal.js...
remote:        ⏳  Building _string-ws.js...
remote:        ⏳  Building _invoke.js...
remote:        ⏳  Building _to-index.js...
remote:        ⏳  Building _array-species-constructor.js...
remote:        ⏳  Building _createFind.js...
remote:        ⏳  Building findIndex.js...
remote:        ⏳  Building BrowserStyleSheet.js...
remote:        ⏳  Building index.js...
remote:        ⏳  Building assign.js...
remote:        ⏳  Building difference.js...
remote:        ⏳  Building _baseIteratee.js...
remote:        ⏳  Building isArrayLike.js...
remote:        ⏳  Building keys.js...
remote:        ⏳  Building _baseFindIndex.js...
remote:        ⏳  Building toInteger.js...
remote:        ⏳  Building _assignValue.js...
remote:        ⏳  Building _copyObject.js...
remote:        ⏳  Building _createAssigner.js...
remote:        ⏳  Building _isPrototype.js...
remote:        ⏳  Building _baseDifference.js...
remote:        ⏳  Building _baseFlatten.js...
remote:        ⏳  Building _baseRest.js...
remote:        ⏳  Building isArrayLikeObject.js...
remote:        ⏳  Building extractCompsFromCSS.js...
remote:        ⏳  Building _baseMatches.js...
remote:        ⏳  Building _baseMatchesProperty.js...
remote:        ⏳  Building identity.js...
remote:        ⏳  Building isArray.js...
remote:        ⏳  Building property.js...
remote:        ⏳  Building isFunction.js...
remote:        ⏳  Building isLength.js...
remote:        ⏳  Building _arrayLikeKeys.js...
remote:        ⏳  Building _baseKeys.js...
remote:        ⏳  Building toFinite.js...
remote:        ⏳  Building _baseAssignValue.js...
remote:        ⏳  Building eq.js...
remote:        ⏳  Building _isIterateeCall.js...
remote:        ⏳  Building _SetCache.js...
remote:        ⏳  Building _arrayIncludes.js...
remote:        ⏳  Building _arrayIncludesWith.js...
remote:        ⏳  Building _arrayMap.js...
remote:        ⏳  Building _baseUnary.js...
remote:        ⏳  Building _cacheHas.js...
remote:        ⏳  Building _arrayPush.js...
remote:        ⏳  Building _isFlattenable.js...
remote:        ⏳  Building _overRest.js...
remote:        ⏳  Building _setToString.js...
remote:        ⏳  Building isObjectLike.js...
remote:        ⏳  Building _baseIsMatch.js...
remote:        ⏳  Building _getMatchData.js...
remote:        ⏳  Building _matchesStrictComparable.js...
remote:        ⏳  Building _baseIsEqual.js...
remote:        ⏳  Building get.js...
remote:        ⏳  Building hasIn.js...
remote:        ⏳  Building _isKey.js...
remote:        ⏳  Building _isStrictComparable.js...
remote:        ⏳  Building _toKey.js...
remote:        ⏳  Building _baseProperty.js...
remote:        ⏳  Building _basePropertyDeep.js...
remote:        ⏳  Building _baseGetTag.js...
remote:        ⏳  Building isObject.js...
remote:        ⏳  Building _baseTimes.js...
remote:        ⏳  Building isArguments.js...
remote:        ⏳  Building isBuffer.js...
remote:        ⏳  Building _isIndex.js...
remote:        ⏳  Building isTypedArray.js...
remote:        ⏳  Building toNumber.js...
remote:        ⏳  Building _defineProperty.js...
remote:        ⏳  Building _MapCache.js...
remote:        ⏳  Building _setCacheAdd.js...
remote:        ⏳  Building _setCacheHas.js...
remote:        ⏳  Building _baseIndexOf.js...
remote:        ⏳  Building _nativeKeys.js...
remote:        ⏳  Building _Symbol.js...
remote:        ⏳  Building _apply.js...
remote:        ⏳  Building _baseSetToString.js...
remote:        ⏳  Building _shortOut.js...
remote:        ⏳  Building _Stack.js...
remote:        ⏳  Building _baseIsEqualDeep.js...
remote:        ⏳  Building _baseGet.js...
remote:        ⏳  Building _baseHasIn.js...
remote:        ⏳  Building _hasPath.js...
remote:        ⏳  Building isSymbol.js...
remote:        ⏳  Building _getRawTag.js...
remote:        ⏳  Building _objectToString.js...
remote:        ⏳  Building _baseIsArguments.js...
remote:        ⏳  Building _root.js...
remote:        ⏳  Building stubFalse.js...
remote:        ⏳  Building _baseIsTypedArray.js...
remote:        ⏳  Building _nodeUtil.js...
remote:        ⏳  Building _getNative.js...
remote:        ⏳  Building _mapCacheClear.js...
remote:        ⏳  Building _mapCacheDelete.js...
remote:        ⏳  Building _mapCacheGet.js...
remote:        ⏳  Building _mapCacheHas.js...
remote:        ⏳  Building _mapCacheSet.js...
remote:        ⏳  Building _baseIsNaN.js...
remote:        ⏳  Building _strictIndexOf.js...
remote:        ⏳  Building _overArg.js...
remote:        ⏳  Building constant.js...
remote:        ⏳  Building _ListCache.js...
remote:        ⏳  Building _stackClear.js...
remote:        ⏳  Building _stackDelete.js...
remote:        ⏳  Building _stackGet.js...
remote:        ⏳  Building _stackHas.js...
remote:        ⏳  Building _stackSet.js...
remote:        ⏳  Building _equalArrays.js...
remote:        ⏳  Building _equalByTag.js...
remote:        ⏳  Building _equalObjects.js...
remote:        ⏳  Building _getTag.js...
remote:        ⏳  Building _castPath.js...
remote:        ⏳  Building _freeGlobal.js...
remote:        ⏳  Building _baseIsNative.js...
remote:        ⏳  Building _getValue.js...
remote:        ⏳  Building _Hash.js...
remote:        ⏳  Building _Map.js...
remote:        ⏳  Building _getMapData.js...
remote:        ⏳  Building _listCacheClear.js...
remote:        ⏳  Building _listCacheDelete.js...
remote:        ⏳  Building _listCacheGet.js...
remote:        ⏳  Building _listCacheHas.js...
remote:        ⏳  Building _listCacheSet.js...
remote:        ⏳  Building _arraySome.js...
remote:        ⏳  Building _Uint8Array.js...
remote:        ⏳  Building _mapToArray.js...
remote:        ⏳  Building _setToArray.js...
remote:        ⏳  Building _getAllKeys.js...
remote:        ⏳  Building _DataView.js...
remote:        ⏳  Building _Promise.js...
remote:        ⏳  Building _Set.js...
remote:        ⏳  Building _WeakMap.js...
remote:        ⏳  Building _toSource.js...
remote:        ⏳  Building _stringToPath.js...
remote:        ⏳  Building toString.js...
remote:        ⏳  Building _isMasked.js...
remote:        ⏳  Building _hashClear.js...
remote:        ⏳  Building _hashDelete.js...
remote:        ⏳  Building _hashGet.js...
remote:        ⏳  Building _hashHas.js...
remote:        ⏳  Building _hashSet.js...
remote:        ⏳  Building _isKeyable.js...
remote:        ⏳  Building _assocIndexOf.js...
remote:        ⏳  Building _baseGetAllKeys.js...
remote:        ⏳  Building _getSymbols.js...
remote:        ⏳  Building _memoizeCapped.js...
remote:        ⏳  Building _baseToString.js...
remote:        ⏳  Building _coreJsData.js...
remote:        ⏳  Building _nativeCreate.js...
remote:        ⏳  Building _arrayFilter.js...
remote:        ⏳  Building stubArray.js...
remote:        ⏳  Building memoize.js...
remote:        ✨  Built in 5.64s.
remote:        Done in 6.45s.
remote:        Done in 20.75s.
remote: 

@reel
Copy link
Contributor Author

reel commented Dec 10, 2017

But, it was crashing before or just writing a msg? As this PR might not be required.

@albinotonnina
Copy link
Contributor

Crashing!

Sent with GitHawk

try {
cores = require('physical-cpu-count');
} catch (err) {
cores = os.cpus();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should probably be os.cpus().length

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Weekends...

@devongovett devongovett merged commit 9d319af into parcel-bundler:master Dec 11, 2017
rakannimer pushed a commit to rakannimer/parcel that referenced this pull request Dec 11, 2017
…arcel-bundler#142)

* Only use os.cpus() and filter out core like physical-cpu-count did

The problem is with heroku and some CI, the physical-cpu-count linux branch requires a binary and access not provided by these environments.

* using physical-cpu-count and defaulting to os.cpus()

* get the actual length, should be good
@sohaibnehal
Copy link

sohaibnehal commented Dec 11, 2017

Has this been solved? I am trying to create dist folder on heroku and it gives the same message .
I do not want to commit dist folder and rather want to create dist folder as part of my build process. Lemme know what I should do to fix it. Thanks

remote:        > npm run build
remote:        
remote:        
remote:        > parcel-bundle-mvp@0.0.0 build /tmp/build_b23b920d8fe143f36d6c2dbc1962f285
remote:        > parcel build client/index.html --no-minify --public-url ./
remote:        
remote:        ⏳  Building...
remote:        
remote:        lscpu: failed to determine number of CPUs: /sys/devices/system/cpu/possible: No such file or directory
remote:        ⏳  Building index.html...
remote:        up to date in 5.519s

@albinotonnina
Copy link
Contributor

@sohaibnehal I think 9d319af solves the issue

devongovett pushed a commit that referenced this pull request Oct 15, 2018
)

* Only use os.cpus() and filter out core like physical-cpu-count did

The problem is with heroku and some CI, the physical-cpu-count linux branch requires a binary and access not provided by these environments.

* using physical-cpu-count and defaulting to os.cpus()

* get the actual length, should be good
devongovett pushed a commit that referenced this pull request Oct 15, 2018
)

* Only use os.cpus() and filter out core like physical-cpu-count did

The problem is with heroku and some CI, the physical-cpu-count linux branch requires a binary and access not provided by these environments.

* using physical-cpu-count and defaulting to os.cpus()

* get the actual length, should be good
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

Successfully merging this pull request may close these issues.

6 participants