tools: Build fails if the application has polymerfire elements.

Description

Build permanently fails once I add any polymerfire element into the app.

Versions & Environment

  • Polymer CLI: 0.15.0; 0.14.0
  • node: v4.4.7
  • Operating System: OS X El Capitan 10.11.6 (15G31)
Users-MacBook-Pro-2:test_app User$ node -v
v4.4.7
Users-MacBook-Pro-2:test_app User$ polymer --version
0.15.0
Users-MacBook-Pro-2:test_app User$ bower --version
1.7.9

Steps to Reproduce

  1. mkdir test_app && cd test_app && polymer init application && bower install --save firebase/polymerfire
  2. open src/test_app-app/test_app-app.html and copy-paste this (firebase credentials not needed)
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/polymerfire/firebase-app.html">

<dom-module id="test_app-app">
    <template>
        <firebase-app>
        </firebase-app>
    </template>

    <script>
        Polymer({
            is: 'test_app-app'
        });
    </script>
</dom-module>
  1. Run polymer build

Expected Results

Successful build

Actual Results

OUTPUT

Users-MacBook-Pro-2:test_app User$ polymer build
info:    Building application...
info:    Generating build/unbundled...
info:    Generating build/bundled...
error:   Promise rejection: Error: file path is not in root: /bower_components/firebase/firebase.js (/Users/User/Documents/WebCopilot/test_app/test_app)
error:   Error: file path is not in root: /bower_components/firebase/firebase.js (/Users/User/Documents/WebCopilot/test_app/test_app)
    at Object.urlFromPath (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/lib/path-transformers.js:41:15)
    at StreamAnalyzer.getFile (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/lib/analyzer.js:107:39)
    at StreamResolver.accept (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/lib/analyzer.js:210:34)
    at FileLoader.request (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/hydrolysis/lib/loader/file-loader.js:64:27)
    at Object.<anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/vulcanize/lib/vulcan.js:318:26)
    at Array.map (native)
    at Object.inlineScripts (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/vulcanize/lib/vulcan.js:311:34)
    at Object.<anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/vulcanize/lib/vulcan.js:458:21)
    at run (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/hydrolysis/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:87:22)
    at /usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/hydrolysis/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:100:28
error:   Promise rejection: Error: file path is not in root: /bower_components/firebase/firebase.js (/Users/User/Documents/WebCopilot/test_app/test_app)
error:   Error: file path is not in root: /bower_components/firebase/firebase.js (/Users/User/Documents/WebCopilot/test_app/test_app)
    at Object.urlFromPath (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/lib/path-transformers.js:41:15)
    at StreamAnalyzer.getFile (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/lib/analyzer.js:107:39)
    at StreamResolver.accept (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/lib/analyzer.js:210:34)
    at FileLoader.request (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/hydrolysis/lib/loader/file-loader.js:64:27)
    at Object.<anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/vulcanize/lib/vulcan.js:318:26)
    at Array.map (native)
    at Object.inlineScripts (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/vulcanize/lib/vulcan.js:311:34)
    at Object.<anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/vulcanize/lib/vulcan.js:458:21)
    at run (/usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/hydrolysis/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:87:22)
    at /usr/local/lib/node_modules/polymer-cli/node_modules/polymer-build/node_modules/hydrolysis/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:100:28
Users-MacBook-Pro-2:test_app User$ 

About this issue

  • Original URL
  • State: open
  • Created 8 years ago
  • Comments: 17 (7 by maintainers)

Most upvoted comments

WORKAROUND

Actually I noticed the same as @ergo here. If in index.html you change main app import path to relative, it works fine.

<!--not working-->
<link rel="import" href="/src/test_app-app/test_app-app.html">
<!--works-->
<link rel="import" href="src/test_app-app/test_app-app.html">

Yup, unfortunately this was a pretty low-level issue that got caught up in our tooling rewrite. It is fixed in the ‘next’ version of the CLI (‘npm install -g polymer-cli@next’) and should be available on ‘latest’ soon.

@iSuslov See my response here: https://github.com/Polymer/polymer-cli/issues/369#issuecomment-241885235

If that’s your index.html and you’re serving that page from anywhere besides the website root path, you’ll run into issues.

Hmm, this seems verrrrry similar to #369 (see accept: ../../../../../bower_components/firebase/firebase.js in the output above).

I’ll spend a bit more time looking into this now that we have a new reproduction case, but as mentioned in that issue the error seems to be coming from hydrolosis/polymer-analyzer and not polymer-cli or polymer-build. That library is going through a major refactoring as we speak, so we may want to wait for that to land before fixing (and cross our fingers that the refactor fixes this automatically).