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
mkdir test_app && cd test_app && polymer init application && bower install --save firebase/polymerfire- open
src/test_app-app/test_app-app.htmland 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>
- 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)
WORKAROUND
Actually I noticed the same as @ergo here. If in
index.htmlyou change main app import path to relative, it works fine.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.htmland 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.jsin 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).