- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将现有应用程序分解为多个模块。我选择使用 Browserify 来做到这一点,因为它的语法很好地模仿了 NodeJS 的要求。
我的项目依赖于几个外部模块,其中之一是 Backbone。因此,我正在使用 browserify-shim。但是,我遇到了一个问题。
在我的 package.json 中,我定义了以下内容:
```
"browserify": {
"transform": [
"browserify-shim"
]
},
"browser": {
"jQuery": "public/js/vendor/jquery-2.0.3.min.js",
"lodash": "public/js/vendor/lodash.js",
"Backbone": "public/js/vendor/backbone-1.1.2.js"
},
"browserify-shim": {
"jQuery": "global:$",
"lodash": "_",
"Backbone": {
"exports": "global:Backbone",
"depends": [
"jQuery",
"lodash"
]
},
"BackboneLocalStorage": {
"depends": [
"Backbone"
]
}
},
```
在我的一个文件中,我需要像这样的 Backbone:
var Backbone = require('Backbone');
当编译我的 bundle 时,Browserify 没有提示,所以一切看起来都很好。但是,在浏览器中加载我的应用程序时,我收到错误 Cannot read property 'Model' of undefined
(我正在调用 Backbone.Model.extend()
)对我来说意义不大。
当我将 "exports": "global:Backbone",
更改为 "exports": "Backbone",
Browserify 停止并显示消息
Error: module "Backbone" not found
我不明白我做错了什么,我觉得 Browserify-shim 文档在这里帮不上什么忙。他们举了一个很好的例子,但并没有真正解释发生了什么或什么会导致这样的错误。谁能赐教一下?
最佳答案
我相信您正在使用 Browserify-shim 3.0,因为您的 package.json 中有配置(如果我错了,请纠正我)。基于 3.0 的文档,exposing a global config似乎向垫片表明您已经从包外部包含了库;在示例中,three.js 包含在 CDN 中。
尝试删除 global: 所以它显示为:
"Backbone": {
"exports": "Backbone",
"depends": [
"jQuery",
"lodash"
]
},
或者删除整个导出部分。 Backbone 的另一个挑战是确保你有 exposed Backbone's $ property适本地。
我自己一直在玩这个,我同意这些文档......充其量只是令人困惑。在我的例子中,我简单地使用 --save npm install Backbone 和 jQuery 并 require 这两个没有垫片(我的插件等和 jQuery 现在被垫片,但不是 Backbone 本身)。
希望这对您有所帮助!
关于javascript - Browserify-shim 依赖未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23117086/
我正在尝试使用更新的包重建项目但遇到此错误: [folatt@ArkOS-Dev genesis]$ ember build cleaning up... Build failed. The Broc
我正在尝试使用更新的包重建项目但遇到此错误: [folatt@ArkOS-Dev genesis]$ ember build cleaning up... Build failed. The Broc
鉴于以下情况: main.js var angular = require('angular'); 包.json { "main": "./main.js", "browser": {
我正在编写将一些数据放入分类帐的链码,然后尝试使用shim.GetStateByPartialCompositeKey()将其列出,并从迭代器中获取数据列表。现在,我想根据时间戳对数据进行排序(仅按日
我想为通用方法创建一个垫片。但在那种情况下,我对 Generic 有点麻烦。 这是我的例子: class BaseRepository where T: Entity { public T[
如主题所示。我的文件结构是: js/ |- bootstrap | |- module1 | |- module2 | |- jquery.min.js |- main.js 我的
该术语的官方解释是 es5-shim.js and es5-shim.min.js monkey-patch a JavaScript context to contain all EcmaScrip
它has been stated那: The shim allows for daemonless containers. It basically sits as the parent of the
据我了解,您可以使用 Requirejs 的填充程序来动态加载未在自己的文件中定义为模块的脚本。那么为什么我不能让这样一个简单的脚本工作呢? 这是我的非工作示例: /libs/test.js: var
我想将 bootstrap.js 和 jquery.js(均随 npm 安装)合并到vendors.js 文件中,但仍然可以通过调用 require('$') 来使用 jquery。所以我创建了 gu
我正在尝试获取与 magento 2 requirejs 一起使用的常量联系人脚本。 (我尝试将其内联添加,但它会发生冲突并导致错误) 他们的脚本需要数组 localizedErrMap 和 jQue
我发现自己需要这样的东西: // This could just as well be a concrete class. // // It is an interface for the sake
我正在尝试将现有应用程序分解为多个模块。我选择使用 Browserify 来做到这一点,因为它的语法很好地模仿了 NodeJS 的要求。 我的项目依赖于几个外部模块,其中之一是 Backbone。因此
我想将两个变量($ 和 jQuery)从 jquery 包传递到 persian-datepicker。因此,我添加了 $ 和 jQuery 作为 persian-datepicker 的依赖项。我所
我在 browserify-shim 和 bootstrap-datetimepicker 方面遇到问题。 Bootstrap-datetimepicker 需要 moment.js 但必须先加载此插
我想针对某些错误的网络行为测试存储库。我使用 MS Fakes 伪造了类(class),它看起来像这样: ShimInputRepository .AllInstanc
我在 vs 2015 上运行 angularjs2/TypeScript 项目 并按照 https://www.typescriptlang.org/docs/handbook/asp-net-4.h
我有一个测试方法,当我运行它时它很好,但在调试时失败并出现异常。下面是经过测试的方法和 VS Test Runner 的输出。异常来自 ShimsContext.Create() 信息:VS 2012
在为 BCL(或与此相关的任何库)中的类型成员创建垫片时。我们经常遇到这样一种情况,我们想要调用我们已经覆盖的原始方法(无论是在 shim 委托(delegate)内部还是外部)。例如: System
在 Visual Studio 2015 中,我有一个测试项目,我向其中添加了一个假程序集。 在单元测试本身中,我为静态泛型方法创建了一个垫片,该方法将实例返回到泛型类型,例如: using (Shi
我是一名优秀的程序员,十分优秀!