【发布时间】:2016-07-28 07:15:16
【问题描述】:
我正在尝试几种将 Browserify 与我的 play 框架应用程序一起使用的方法,其中之一是使用 npm 作为包管理器。安装了几个模块,典型的 node_modules 文件夹出现在项目的根目录下。
使用 Browserify 和 Gulp,我能够从这些模块中“要求”Javascript 并使用它(例如 Bootstrap)。
但是,加载 CSS(例如,对于 Bootstrap)我尝试了不同的方法,但都不起作用。
首先,我尝试让它在一个普通的 HTML/css 项目中工作,并且在安装了 npm 模块之后,能够通过简单的一行来导入 css:
<link type="text/css" rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.css">
在 play 应用程序的上下文中,我会在该 CSS 上不断收到 404。以下是我尝试过的一小部分内容:
- 简单地包含 CSS 外部样式表(使用 ../../ 退出应用程序/视图)
- @import 在我的本地 CSS 之一中(也使用 ../../)
- 将 node_modules 文件夹复制到目标文件夹中,位于 WebJars 旁边的某个位置。我尝试这样做的原因是Play 2.3 Migration 的以下摘录。这一段也让我尝试 Webjars.locate 我复制到目标的 npm 包。
通过在项目的根目录中声明一个 package.json 文件,npm 可以与 WebJars 一样使用。 npm 包中的资源被提取到与 WebJars 相同的 lib 文件夹中,因此从代码的角度来看,无需担心资源是来自 WebJar 还是来自 npm 包。
- 在线阅读,似乎很多人实际上将他们的 npm_module css 复制到资产中。这不会消除使用 NPM 等包管理器的意义吗?
- 我还尝试在我的 javascript 中使用 require(bootstrap/path-to-css)。
- 查看了 browserify-css 和 npm-css 模块,但 @import 和 @require(css-file) 也会失败。
如何在 Play 环境中将 node_modules css 带入我的应用程序? 推荐哪种方法可以让它以干净的方式工作?
谢谢
【问题讨论】:
标签: playframework npm playframework-2.0 browserify