使用Vue-cli,是否可以构建CSS -into-dist / vue-COMPONENT_NAME.js文件?

时间:2017-07-22 13:28:26

标签: javascript css vue.js vuejs2 vue-cli

TLDR:有没有人知道一种优雅的方法来确保组件将自己的<style>{...everything in ./dist/vue-COMPONENT_NAME.css}</style>元素注入页面,但只有一次? SSR还友好吗?

我已经在寻找一个好的解决方案了2天以上了;我正构建一个可能被大多数非构建的客户端环境使用的Vue组件,通过脚本标记包含在页面中:

<script src="https://unpkg.com/vue-COMPONENT_NAME/dist/vue-COMPONENT_NAME.js"></script>

而且,通常您只需使用链接标记来获取样式:

<link rel="stylesheet" href="https://unpkg.com/vue-COMPONENT_NAME/dist/vue-COMPONENT_NAME.css">

..但我想删除将额外的(可能已忘记的)链接标记添加到页面的要求。我希望这个组件能够自动将所需的样式注入到页面中,因此它永远不会以非样式状态显示。

这是一个使用Canvas进行显示的以图形为中心的组件,它的一些内部逻辑是在分析顶级DOM节点的clientBoundingRect的基础上构建的 - 因此具有在mount时设置其大小和比例的样式是必要的。

我也计划通过Nuxt自己使用这个组件,所以我必须确保无论遇到什么解决方案都避免了可怕的"The client-side rendered virtual DOM tree is not matching server-rendered content."错误消息。

到目前为止,我一直很喜欢使用vue-cli进行构建的低配置:

vue build vue-COMPONENT_NAME.vue --prod --lib VueCOMPONENT

...但它的输出始终是两个文件:

./dist/vue-COMPONENT_NAME.js ./dist/vue-COMPONENT_NAME.css

是否有vue-cli的参数或配置参数会导致它将样式构建为./dist/vue-COMPONENT_NAME.js?有没有人用vue-cli做过这样的事情?

0 个答案:

没有答案