将供应商js文件(来自wrappebootstrap)合并到Rails4中
Incorporating vendor js files (from wrap bootstrap) into Rails 4
我很难理解如何将供应商js资产合并到我的Rails 4应用程序中。
我的应用程序使用引导程序。供应商文件包括一个名为npm.js的js文件
// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
require('../../js/transition.js')
require('../../js/alert.js')
require('../../js/button.js')
require('../../js/carousel.js')
require('../../js/collapse.js')
require('../../js/dropdown.js')
require('../../js/modal.js')
require('../../js/tooltip.js')
require('../../js/popover.js')
require('../../js/scrollspy.js')
require('../../js/tab.js')
require('../../js/affix.js')
在我的app/assets/javascript文件夹中,我有一个名为application.js的文件
//= require npm
在控制台检查器中,我可以看到npm文件的合并出现错误。错误消息为:
npm.self-f66d504….js?body=1:2 Uncaught ReferenceError: require is not defined
我认为这可能与..有关。。npm.js文件中列出的引用。
有人知道如何将其用于rails 4(托管在heroku上)吗?
非常感谢。
JS中的require(...)
语句采用CommonJS格式(因此顶部有注释),通常在Node.JS中使用,但在浏览器环境中不受支持,这就是为什么在检查器中会出现错误的原因。
一种选择是使用Browserify和Grunt将每个JS文件链接并编译为一个npm.JS文件(尽管我建议使用不同的名称)。您是否已经使用browserify_rails、Grunt或类似工具来管理JS文件?
如果你还没有使用过Grunt/Browserify,或者上面的语句不清楚,那么最好也最简单的方法就是坚持使用Rails资产管道:
因此application.js
将变为:
//= require('<path>/js/transition.js')
//= require('<path>/js/alert.js')
//= require('<path>/js/button.js')
//= require('<path>/js/carousel.js')
// etc...
代替:
//= require npm
这应该会生成与上面的示例等效的JS。
最后,确保<path>
包含在config.assets.paths
配置变量中。
相关文章:
- JQuery合并了keyup和focusout两个函数
- JSON重构(合并内容)与javascript
- Javascript-根据赋值顺序,按键合并对象数组
- 合并两个数组,重新调整循环js
- 如何合并不同集合的游标并按日期排序
- 合并TinyMCE(jQuery插件)文件
- 如何循环通过2个对象数组并通过匹配id进行合并
- 将两个Json提要合并为一个,并按时间排序
- 将项目履行与高级模板合并,并通过电子邮件发送至Netsuite 2.0
- DataTables合并了两个独立表中的jQuery/Javascript函数
- 承诺合并流
- 如何使用javascript合并两个对象数组
- 别名或以其他方式合并两个具有不同名称的相同对象原型
- 可以合并或嵌套ES6导入
- 在rxjs中巧妙的蒸汽可观察合并
- mandrill合并标记不接受变量值
- 如何合并数组中的重复项
- 如何从合并的结果集中提取数组
- 将javascript对象(属性+值)合并到一个对象中
- 将供应商js文件(来自wrappebootstrap)合并到Rails4中