我目前正在开发一个 angularjs 项目并尝试构建可重用的组件 - 深受这篇文章的启发(这也催生了angular 组件规范)。
我想知道我应该如何打包要包含在组件中的图像/样式表?
我想要的一些东西:
- 萨斯风格
- 在组件目录中存储图像的地方,以及在样式表中引用它们的方法
- 使用组件的应用程序中的可覆盖样式
目前我的想法是:
在我的凉亭组件目录(app/public/components
)中创建组件,所以我有
app
|-- public
|-- components
|-- prefix-component-name
|-- assets
|-- img
|-- ...
|-- views
|-- templates
|-- sass
|-- styles.scss <-- Component styles
|-- img
|-- css
|-- js
index.html
|-- views
|-- sass
|-- application.scss <-- Application styles
application.scss 将导入组件的样式,例如
@import "../../public/components/prefix-component-name/views/sass/styles";
我不确定的事情:
- 我应该如何引用图像 - 如果应用程序开发人员的路径发生变化怎么办?在组件中为该路径创建一个 sass 变量?
- 我将如何覆盖应用程序中 sass 文件中的变量?我希望应用程序开发人员这样做吗?似乎如果你在 sass 中覆盖一个变量,它会从它改变的地方向下传播,所以应用程序只能自己改变它。
- 导入时可以将路径传递给 sass 文件吗?
我的用例特定于 angularjs,但我确信同样的问题适用于W3C web components以及像polymer和mozilla brick这样的库。
有任何想法吗?
编辑:views
文件夹与同一级别assets