Node.js - 我应该使用history.js的npm安装还是这个包中的单个文件?

时间:2013-12-31 22:34:01

标签: node.js npm history.js sails.js

我正在使用Sails.js启动Node.js项目,我想知道我是否应该安装history.js或者我应该下载并将js文件放在我的资源链接器中。

在npm安装中,我看到:

  • /豆
  • / domready中
  • history.adapter.ender.js
  • history.js
  • 的package.json

在这里的下载中我看到(对于jquery):

  • history.adapter.jquery.js
  • history.html4.js
  • history.js
  • json2.js

另外,在另一页上我看到:

  • ajaxify-html5.js

我应该使用哪些文件?

1 个答案:

答案 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添加其依赖项。

希望这会有所帮助。