我正在使用Sails.js启动Node.js项目,我想知道我是否应该安装history.js或者我应该下载并将js文件放在我的资源链接器中。
在npm安装中,我看到:
在这里的下载中我看到(对于jquery):
另外,在另一页上我看到:
我应该使用哪些文件?
答案 0 :(得分:2)
我认为每个人都有自己的方式来做他们的资产依赖,但我爱上了Bower这样做。以下是我将Bower设置为我的SailsJS应用程序的资产的方法:
首先安装凉亭:
npm install --save bower
然后创建一个名为 .bowerrc 的文件,它会告诉bower将资产放在哪里:
{
"directory": "assets/components"
}
然后运行 bower init 来初始化Bower配置:
bower init
[?] name: myapp
[?] version: 0.1.0
[?] description: my app description
[?] main file:
[?] keywords:
[?] authors: me
[?] license: MIT
[?] homepage:
[?] set currently installed components as dependencies? No
[?] add commonly ignored files to ignore list? Yes
[?] would you like to mark this package as private which prevents it from being accidentally published to the registry? Yes
// ... cut out the resulting JSON ...
[?] Looks good? Yes
包含JSON配置的名为 bower.json 的新文件的结果是什么。接下来,您将要安装 history.js ,这非常简单:
bower install -S history.js
执行此操作时,请下载 history.js 并将其放入components文件夹中。由于History.JS不需要特定的帮助库,听起来你想使用jQuery,你可以安装jQuery:
bower install -S jquery
接下来,您希望链接器使用这些。所以打开Gruntfile.js。找到 jsFilesToInject 的部分。将新组件添加到其中:
var jsFilesToInject = [
'js/socket.io.js',
'js/sails.io.js',
'js/app.js',
// Now the Bower components.
'components/jquery/jquery.js',
// I determined this by looking at assets/components/history.js/README.md
'components/history.js/scripts/bundled/html4+html5/jquery.history.js'
];
然后打开 views / layout.ejs 并添加必要的脚本和CSS块以使链接器工作:
<head>
<!--STYLES-->
<!--STYLES END-->
<!--SCRIPTS-->
<!--SCRIPTS END-->
</head>
这些注释标记是链接器的指针,用于了解注入脚本的位置。请注意,Sails Assets Documentation提供了有关配置链接器的更多信息,例如要创建的其他文件夹,用于自动链接您自己的JS / CSS / JST。
启动或重新启动Sails应用程序,链接器应将文件复制到相应的文件夹中,并自动将它们注入到您的布局中。
我还要补充一点。在你的Node / Sails应用程序的 package.json 中,我还要添加:
{
"scripts": {
"postinstall": "./node_modules/bower/bin/bower install"
}
}
每当运行“npm install”时,这将触发npm运行bower安装。因此,如果您将应用程序部署到像Heroku这样的服务,它也会自动为您检索资产。
我没有解决Ajaxify问题,因为无论出于何种原因,它都没有通过Bower进行打包。您必须得到它并将其放在您的assets / js / whatever文件夹中并将其添加到链接器。
你也会想看看它的README.md,因为它说明它有什么其他依赖关系以及包含它们的顺序.Gruntfile.js中JS和CSS文件的顺序是它们的顺序将注入到应用程序中。我将查看ajaxify文档并通过Bower添加其依赖项。
希望这会有所帮助。