完全混淆了浏览器和浏览器的关系。 browserify-shim应该有效

时间:2015-10-10 17:37:05

标签: jquery browserify browserify-shim

我开始很容易掌握最新情况: 所以我有一个依赖于jQuery的插件,从那里开始,我建立在那里,只需添加更多。然而,我唯一可以工作的就是jQuery本身。

这是我从终端获得的错误:

[13:24:27] { [Error: Cannot find module 'jquery.mixitup.js' from '/Users/antonioortiz/Dropbox/developer_folder/browserify_app/app/_js']

这是我的设置:

的package.json

"main": "./app/_js/app.js", //entry point for your app
"browserify": {
    "transform": [
        "browserify-shim", // Is this supposed to help with the non `node_module` pacakages?
         "debowerify"
    ]
},

"browser": { // This gives browserify the location of your plugin right?
    "mixitup": "./bower_components/mixitup/src/jquery.mixitup.js"
},

"browserify-shim": { 
    "jQuery": "global:jQuery",
    "mixitup": {
        "depends": "jQuery",
        "exports": "mixitup"

    }

在基本级别上,browserify-shim应该完成获取非节点模块'对?有没有人介意直接设置记录,因为对于我的生活,我无法正确配置。但更重要的是,我很想知道发生了什么!

谢谢!

更新

所以如果你使用它会出现     var mixitup = require('./../bower_components/mixitup/build/jquery.mixitup.min.js');文件中的app.js。但那么browserify-shim有什么意义呢。我虽然应该允许你使用缩短的惯例:

在我的情况下,它将是:

var mixitup = require('jquery.mixitup.js');

更新

基于尼克的建议试过这个,因为我没有使用proxyquireify。任何人有另一种方法。因为我还在杂草中......

"browser": {
        "jQuery": "global:jQuery",
        "mixitup": "/app/bower_components/mixitup/src/jquery.mixitup.js",
        "Mustache": "/app/bower_components/jquery-Mustache/jquery.mustache.js",
        "mustache": "mustache"
    }

但没有成功......

file path

同时收到一条错误信息,似乎比最后一条更加神秘:

{ [Error: ENOENT, lstat '/app']
  errno: 34,
  code: 'ENOENT',
  path: '/app',
  stream: 

1 个答案:

答案 0 :(得分:0)

Browserify-shim make允许您根据您提供的映射导出模块。因此,在您的示例中,您应该通过mixitup要求您的模块,例如var mixitup = require('mixitup');。您收到模块错误,因为您正在寻找名为jquery.mixitup.js的模块。有关节点模块系统如何工作的更多信息here

您不需要exports,因为browserify-shim默认导出别名(docs):

"mixitup": {
  "depends": "jQuery"
}

如果您使用的是debowerify,则也无需使用browserify-shim