componentjs / component

frontend package manager and build tool for modular web applications
https://github.com/componentjs/guide
MIT License
4.55k stars 306 forks source link

make it harder to get component.json "scripts" field *wrong* #565

Closed jasonkuhrt closed 9 years ago

jasonkuhrt commented 10 years ago

I think these should work identically but currently the former will break at component build time:

  "scripts": [
    "./index.js",
    "./lib/**/*.js"
  ],
  "scripts": [
    "index.js",
    "lib/**/*.js"
  ],
jonathanong commented 10 years ago

it breaks? does it give a reason? it should work since it removes any leading ./

jasonkuhrt commented 10 years ago

Here it is failing:

DEBUG=* component build                                                                                                                   
  remotes:local checking local components at /Users/jasonkuhrt/projects/oauth2-implicit/components +0ms
  component-resolver remote not set - defaulting to remotes's defaults +0ms
  component-resolver:locals resolving local at "/Users/jasonkuhrt/projects/oauth2-implicit" +0ms
  component-resolver resolving "oauth2-implicit" +10ms
  component-resolver remaining dependencies: 1 +3ms
  component-resolver remaining semver: 0 +0ms
  component-resolver finished resolving locals +1ms
  component-resolver finished resolving dependencies (1) +0ms
  component-resolver:semver resolving semver yields/store@~0.2.0 +0ms
  remotes:local resolving local remote +18ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/store +1ms
  remotes:local got folders: 0.2.0 +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/store +0ms
  remotes:local got folders: 0.2.0 +1ms
  component-resolver:dependencies resolving dependency yields/store@0.2.0 +0ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for yields/store@0.2.0 +0ms
  remotes:local resolving local remote +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/store +0ms
  remotes:local got folders: 0.2.0 +0ms
  component-resolver:dependencies found yields/store@0.2.0 from remote "local" +1ms
  component-resolver resolving "yields/store" +6ms
  component-resolver:semver resolving semver component/each@* +5ms
  remotes:local resolving local remote +2ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/each +0ms
  component-resolver:semver resolving semver component/type@* +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/type +0ms
  component-resolver:semver resolving semver yields/unserialize@* +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/unserialize +0ms
  component-resolver remaining dependencies: 3 +1ms
  component-resolver remaining semver: 1 +0ms
  component-resolver:semver resolved semver yields/store@~0.2.0 -> yields/store@0.2.0 +1ms
  component-resolver finished resolving semver +0ms
  remotes:local got folders: 0.2.3 +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/each +1ms
  remotes:local got folders: 1.0.0 +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/type +0ms
  remotes:local got folders: 0.0.1 +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/unserialize +0ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/yields/store/0.2.0" exists, skipping downloading. +0ms
  remotes:local got folders: 0.2.3 +0ms
  component-resolver:dependencies resolving dependency component/each@0.2.3 +3ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for component/each@0.2.3 +0ms
  remotes:local resolving local remote +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/each +0ms
  remotes:local got folders: 1.0.0 +0ms
  component-resolver:dependencies resolving dependency component/type@1.0.0 +1ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for component/type@1.0.0 +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/type +0ms
  remotes:local got folders: 0.0.1 +0ms
  component-resolver:dependencies resolving dependency yields/unserialize@0.0.1 +0ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for yields/unserialize@0.0.1 +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/unserialize +0ms
  remotes:local got folders: 0.2.3 +0ms
  remotes:local got folders: 1.0.0 +1ms
  remotes:local got folders: 0.0.1 +0ms
  component-resolver:dependencies found component/each@0.2.3 from remote "local" +1ms
  component-resolver resolving "component/each" +3ms
  component-resolver:dependencies resolving dependency component/to-function@2.0.0 +0ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for component/to-function@2.0.0 +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/to-function +1ms
  component-resolver remaining dependencies: 5 +1ms
  component-resolver remaining semver: 0 +0ms
  component-resolver:semver resolved semver component/each@* -> component/each@0.2.3 +4ms
  component-resolver:dependencies found component/type@1.0.0 from remote "local" +1ms
  component-resolver resolving "component/type" +0ms
  component-resolver remaining dependencies: 5 +0ms
  component-resolver remaining semver: 0 +0ms
  component-resolver:dependencies resolved dependencies of "component/each" +0ms
  component-resolver:semver resolved semver component/type@* -> component/type@1.0.0 +0ms
  component-resolver:dependencies found yields/unserialize@0.0.1 from remote "local" +0ms
  component-resolver resolving "yields/unserialize" +1ms
  component-resolver remaining dependencies: 5 +0ms
  component-resolver remaining semver: 0 +0ms
  component-resolver:semver resolved semver yields/unserialize@* -> yields/unserialize@0.0.1 +1ms
  remotes:local got folders: 2.0.0 +1ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/component/each/0.2.3" exists, skipping downloading. +4ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/component/type/1.0.0" exists, skipping downloading. +0ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/yields/unserialize/0.0.1" exists, skipping downloading. +0ms
  component-resolver:dependencies found component/to-function@2.0.0 from remote "local" +1ms
  component-resolver resolving "component/to-function" +1ms
  component-resolver:semver resolving semver component/props@* +1ms
  remotes:local resolving local remote +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/props +0ms
  component-resolver remaining dependencies: 2 +0ms
  component-resolver remaining semver: 0 +0ms
  component-resolver:dependencies resolved dependencies of "component/each" +1ms
  remotes:local got folders: 1.1.2 +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/props +0ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/component/to-function/2.0.0" exists, skipping downloading. +1ms
  remotes:local got folders: 1.1.2 +1ms
  component-resolver:dependencies resolving dependency component/props@1.1.2 +1ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for component/props@1.1.2 +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/props +0ms
  remotes:local got folders: 1.1.2 +0ms
  component-resolver:dependencies found component/props@1.1.2 from remote "local" +0ms
  component-resolver resolving "component/props" +1ms
  component-resolver remaining dependencies: 1 +1ms
  component-resolver remaining semver: 0 +0ms
  component-resolver:semver resolved semver component/props@* -> component/props@1.1.2 +2ms
  component-resolver finished resolving dependencies(2) +0ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/component/props/1.1.2" exists, skipping downloading. +2ms
  component-resolver finished installing dependencies +0ms
       build : resolved in 33ms
  component-consoler Error: could not resolve "./lib/cache" from "oauth2-implicit"'s file "./index.js"
    at Scripts.lookupRelative (/usr/local/share/npm/lib/node_modules/component/node_modules/component-build/node_modules/component-builder/build/builders/scripts.js:874:43)
    at Scripts.lookup (/usr/local/share/npm/lib/node_modules/component/node_modules/component-build/node_modules/component-builder/build/builders/scripts.js:837:12)
    at /usr/local/share/npm/lib/node_modules/component/node_modules/component-build/node_modules/component-builder/build/builders/scripts.js:665:14
    at /usr/local/share/npm/lib/node_modules/component/node_modules/component-build/node_modules/component-builder/node_modules/requires/index.js:41:33
    at Array.forEach (native)
    at map (/usr/local/share/npm/lib/node_modules/component/node_modules/component-build/node_modules/component-builder/node_modules/requires/index.js:40:17)
    at requires (/usr/local/share/npm/lib/node_modules/component/node_modules/component-build/node_modules/component-builder/node_modules/requires/index.js:18:18)
    at Scripts.register (/usr/local/share/npm/lib/node_modules/component/node_modules/component-build/node_modules/component-builder/build/builders/scripts.js:663:8)
    at Scripts.<anonymous> (/usr/local/share/npm/lib/node_modules/component/node_modules/component-build/node_modules/component-builder/build/builders/scripts.js:622:78)
    at Generator.invoke (/usr/local/share/npm/lib/node_modules/component/node_modules/component-resolver/build/index.js:141:31) +0ms

       error : could not resolve "./lib/cache" from "oauth2-implicit"'s file "./index.js"

And then working after removing ./:

⧑ DEBUG=* component build                                                                                                                 
  remotes:local checking local components at /Users/jasonkuhrt/projects/oauth2-implicit/components +0ms
  component-resolver remote not set - defaulting to remotes's defaults +0ms
  component-resolver:locals resolving local at "/Users/jasonkuhrt/projects/oauth2-implicit" +0ms
  component-resolver resolving "oauth2-implicit" +9ms
  component-resolver remaining dependencies: 1 +4ms
  component-resolver remaining semver: 0 +0ms
  component-resolver finished resolving locals +0ms
  component-resolver finished resolving dependencies (1) +0ms
  component-resolver:semver resolving semver yields/store@~0.2.0 +0ms
  remotes:local resolving local remote +17ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/store +0ms
  remotes:local got folders: 0.2.0 +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/store +0ms
  remotes:local got folders: 0.2.0 +1ms
  component-resolver:dependencies resolving dependency yields/store@0.2.0 +0ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for yields/store@0.2.0 +0ms
  remotes:local resolving local remote +2ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/store +0ms
  remotes:local got folders: 0.2.0 +0ms
  component-resolver:dependencies found yields/store@0.2.0 from remote "local" +2ms
  component-resolver resolving "yields/store" +6ms
  component-resolver:semver resolving semver component/each@* +5ms
  remotes:local resolving local remote +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/each +1ms
  component-resolver:semver resolving semver component/type@* +1ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/type +0ms
  component-resolver:semver resolving semver yields/unserialize@* +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/unserialize +0ms
  component-resolver remaining dependencies: 3 +1ms
  component-resolver remaining semver: 1 +0ms
  component-resolver:semver resolved semver yields/store@~0.2.0 -> yields/store@0.2.0 +1ms
  component-resolver finished resolving semver +1ms
  remotes:local got folders: 0.2.3 +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/each +0ms
  remotes:local got folders: 1.0.0 +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/type +0ms
  remotes:local got folders: 0.0.1 +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/unserialize +0ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/yields/store/0.2.0" exists, skipping downloading. +0ms
  remotes:local got folders: 0.2.3 +0ms
  component-resolver:dependencies resolving dependency component/each@0.2.3 +3ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for component/each@0.2.3 +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/each +0ms
  remotes:local got folders: 1.0.0 +0ms
  component-resolver:dependencies resolving dependency component/type@1.0.0 +0ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for component/type@1.0.0 +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/type +1ms
  remotes:local got folders: 0.0.1 +0ms
  component-resolver:dependencies resolving dependency yields/unserialize@0.0.1 +1ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for yields/unserialize@0.0.1 +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/yields/unserialize +0ms
  remotes:local got folders: 0.2.3 +0ms
  remotes:local got folders: 1.0.0 +0ms
  remotes:local got folders: 0.0.1 +0ms
  component-resolver:dependencies found component/each@0.2.3 from remote "local" +1ms
  component-resolver resolving "component/each" +3ms
  component-resolver:dependencies resolving dependency component/to-function@2.0.0 +0ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for component/to-function@2.0.0 +0ms
  remotes:local resolving local remote +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/to-function +0ms
  component-resolver remaining dependencies: 5 +0ms
  component-resolver remaining semver: 0 +0ms
  component-resolver:semver resolved semver component/each@* -> component/each@0.2.3 +3ms
  component-resolver:dependencies found component/type@1.0.0 from remote "local" +1ms
  component-resolver resolving "component/type" +1ms
  component-resolver remaining dependencies: 5 +0ms
  component-resolver remaining semver: 0 +0ms
  component-resolver:dependencies resolved dependencies of "component/each" +0ms
  component-resolver:semver resolved semver component/type@* -> component/type@1.0.0 +1ms
  component-resolver:dependencies found yields/unserialize@0.0.1 from remote "local" +0ms
  component-resolver resolving "yields/unserialize" +0ms
  component-resolver remaining dependencies: 5 +0ms
  component-resolver remaining semver: 0 +0ms
  component-resolver:semver resolved semver yields/unserialize@* -> yields/unserialize@0.0.1 +0ms
  remotes:local got folders: 2.0.0 +1ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/component/each/0.2.3" exists, skipping downloading. +4ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/component/type/1.0.0" exists, skipping downloading. +0ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/yields/unserialize/0.0.1" exists, skipping downloading. +0ms
  component-resolver:dependencies found component/to-function@2.0.0 from remote "local" +1ms
  component-resolver resolving "component/to-function" +1ms
  component-resolver:semver resolving semver component/props@* +1ms
  remotes:local resolving local remote +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/props +0ms
  component-resolver remaining dependencies: 2 +0ms
  component-resolver remaining semver: 0 +1ms
  component-resolver:dependencies resolved dependencies of "component/each" +1ms
  remotes:local got folders: 1.1.2 +1ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/props +0ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/component/to-function/2.0.0" exists, skipping downloading. +1ms
  remotes:local got folders: 1.1.2 +0ms
  component-resolver:dependencies resolving dependency component/props@1.1.2 +0ms
  component-resolver:dependencies searching ["local","github","bitbucket"] for component/props@1.1.2 +0ms
  remotes:local resolving local remote +0ms
  remotes:local checking folder: /Users/jasonkuhrt/projects/oauth2-implicit/components/component/props +0ms
  remotes:local got folders: 1.1.2 +1ms
  component-resolver:dependencies found component/props@1.1.2 from remote "local" +1ms
  component-resolver resolving "component/props" +1ms
  component-resolver remaining dependencies: 1 +0ms
  component-resolver remaining semver: 0 +0ms
  component-resolver:semver resolved semver component/props@* -> component/props@1.1.2 +2ms
  component-resolver finished resolving dependencies(2) +0ms
  component-downloader "/Users/jasonkuhrt/projects/oauth2-implicit/components/component/props/1.1.2" exists, skipping downloading. +1ms
  component-resolver finished installing dependencies +0ms
       build : resolved in 33ms
       build : build/build.js in 23ms - 12kb
       build : files in 21ms
timaschew commented 9 years ago

the reason is that the register function is written in this style:

require.register("app/foo/./index.js", ...

I added a note to the component.json spec: https://github.com/componentjs/spec/blob/master/component.json/specifications.md#file-paths