broccolijs/broccoli-funnel

[confirmed] windows bug

Closed this issue · 14 comments

ember-intl/ember-intl#251 (comment)

I'll see if i can round up a windows machine/vm here..

basically, consumers often use path.join for one reason or another, but this results in different paths provided and breaks the tree construction and potentially other things.

The solution, is for broccoli-funnel to "normalize" user input to something it internally prefers to deal with posix. This will make funnel usage more portable.

I suspect the following will be sufficient.

var path = require('path');
function normalize(filePath) {
  if (path.sep !== '/') {
    return filePath.split(path.sep).join('/')
  }
  return filePath;
}

I'm about to head out for dinner, but will address this either when i return or in the AM.

I believe joliss/node-walk-sync#18 address this, but will confirm on my windows machine tonight.

I'm still having the issue with ember 1.13.12.

I'm still having the issue with ember 1.13.12.

Can you provide a reproduction (or describe whats going on?) unfortunately without more info its hard to resolve.

I'm still getting the error message as described here:

jasonmit/ember-cli-moment-shim#19

Unfortunately i've reverted back to 1.13.8 so i don't have my package.json anymore. If you would like i can try and upgrade again and get all my current packages and versions.

I have these global versions though.
npm: 3.3.12
node: v5.0.0
ember-cli: 1.13.12
os: win32 x64.

Don't know if this matters but when i do npm --v i get 3.3.12 but when i do ember --version it comes up with npm version of 2.14.10.

@Kilowhisky can you share

npm ls broccoli-funnel broccoli-merge-trees broccoli-caching-writer ember-cli-moment

myapp@0.0.1 C:\Projects\GIT\myapp
├─┬ ember-cli@1.13.12
│ ├─┬ broccoli-config-loader@1.0.0
│ │ └── broccoli-caching-writer@2.2.0
│ ├── broccoli-funnel@1.0.0
│ ├── broccoli-merge-trees@1.0.0
│ └─┬ broccoli-sourcemap-concat@2.0.2
│ └── broccoli-caching-writer@2.2.0
├─┬ ember-cli-babel@5.1.6
│ ├─┬ broccoli-babel-transpiler@5.5.0
│ │ └── broccoli-merge-trees@1.0.0
│ └── broccoli-funnel@1.0.0
├─┬ ember-cli-blanket@0.6.2
│ ├── broccoli-funnel@0.2.15
│ └── broccoli-merge-trees@0.2.4
└─┬ ember-cli-less@1.5.2
└─┬ broccoli-less-single@0.6.0
└── broccoli-caching-writer@2.2.0

I'm using my own custom moment instead of ember-cli-moment. I still make use of the ember-cli-moment-shim though.

myapp@0.0.1 C:\Projects\GIT\myapp
└── ember-cli-moment-shim@0.6.2

@Kilowhisky strange ember-cli-moment-shim has a dependency on broccoli-funnel I am surprised it doesn't show up during npm ls broccoli-funnel https://github.com/jasonmit/ember-cli-moment-shim/blob/master/package.json#L24

Anyways, yes something seems fishy.

Same problem here, as described in quaertym/ember-cli-compass-compiler#65

i believe this is sorted out

I am still getting this issue. Seems to be a problem with the way path.normalize and path.join work on windows. Right now I have several of each and I get the error

Error: ENOENT: no such file or directory, mkdir 'C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\tmp\funnel-output_path-MC8q0Jpj.tmp\out\pages'
  at Error (native)
  at Object.fs.mkdirSync (fs.js:842:18)
  at Funnel.applyPatch [as _applyPatch] (C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\node_modules\broccoli-funnel\index.js:291:10)
  at Funnel.<anonymous> (C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\node_modules\broccoli-funnel\index.js:250:10)
  at Array.forEach (native)
  at Funnel.processFilters (C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\node_modules\broccoli-funnel\index.js:249:9)
  at Funnel.build (C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\node_modules\broccoli-funnel\index.js:172:10)
  at C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\node_modules\broccoli-plugin\read_compat.js:61:34
  at lib$rsvp$$internal$$tryCatch (C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\node_modules\rsvp\dist\rsvp.js:1036:16)
  at lib$rsvp$$internal$$invokeCallback (C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\node_modules\rsvp\dist\rsvp.js:1048:17)
  at lib$rsvp$$internal$$publish (C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\node_modules\rsvp\dist\rsvp.js:1019:11)
  at lib$rsvp$asap$$flush (C:\Users\FA-0042\Documents\Projects\salesforce\JohnsonControls\buildresources\node_modules\rsvp\dist\rsvp.js:1198:9)
  at _combinedTickCallback (node.js:376:9)
  at process._tickCallback (node.js:407:11)
  at Function.Module.runMain (module.js:449:11)
  at startup (node.js:142:18)
  at node.js:939:3

but if I remove the path.normalize and path.join statements it builds just fine

Changing my path statements to path.posix.normalize and path.posix.join worked for me

@iDev0urer reproduction please and we can reopen, otherwise it isn't really actionable.

I have this bug in windows, is it still open?