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

我开始使用Sails.js Node.js项目,我想知道如果我应该npm安装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

我应该使用什么文件?

我认为每个人都有自己的方式来做他们的资产依赖,但我爱上了鲍尔这样做。 以下是我如何将Bower设置为SailsJS应用程序的资产:

先安装凉亭:

npm install --save bower 

然后创build一个名为.bowerrc的文件,它会告诉你放置资产的位置:

 { "directory": "assets/components" } 

然后运行bower init来初始化你的Bowerconfiguration:

 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 

什么结果是一个名为bower.json的新文件,其中包含JSONconfiguration。 接下来,您需要安装history.js ,这非常简单:

 bower install -S history.js 

当你这样做,它下载history.js并将其放入您的组件文件夹。 由于History.JS不需要特定的辅助库,听起来你想使用jQuery,你可以安装jQuery:

 bower install -S jquery 

接下来,你会希望链接器使用这些。 所以打开Gruntfile.js。 findjsFilesToInject的部分。 添加你的新组件:

 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文档包含更多关于configuration链接器的信息,例如为自动链接自己的JS / CSS / JST而创build的附加文件夹。

启动或重新启动您的Sails应用程序,链接器应该将文件复制到适当的文件夹,并自动将它们注入您的布局。

我会再添加一件事。 在您的Node / Sails应用程序的package.json中 ,我还要添加:

 { "scripts": { "postinstall": "./node_modules/bower/bin/bower install" } } 

只要运行“npm install”,这将触发npm运行bower安装。 因此,如果您将应用部署到像Heroku这样的服务,它也会为您自动检索您的资产。

我没有解决Ajaxify,这是因为,无论什么原因,它不是通过鲍尔打包。 你必须得到这个,并把它放在你的资产/ js /任何文件夹,并将其添加到链接器。

你也会想看看它的README.md,因为它说明了它的其他依赖关系以及包含它们的顺序.Gruntfile.js中的JS和CSS文件的顺序是它们将被注入的顺序应用程序。 我会看看ajaxify文档,并通过鲍尔增加它的依赖。

希望这可以帮助。