Совершенно запутался, как должны работать браузеры и браузеры.

Ну, я начал с простого, чтобы понять, что происходит: Итак, у меня есть один плагин, который зависит от jQuery, я бы взял его и просто добавил больше. Однако единственное, что я могу заставить работать, это jQuery сам по себе.

Это ошибка, которую я получаю от терминала:

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

Вот моя установка:

пакет.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 выполняет выборку не «node_modules», верно? Кто-нибудь возражает исправить запись, потому что я не могу настроить это правильно. Но что еще более важно, я хотел бы знать, что происходит!

Спасибо!

ОБНОВЛЕНИЕ

Таким образом, если вы используете 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"
    }

Но безуспешно...

путь к файлу

Также появляется сообщение об ошибке, которое кажется более загадочным, чем последнее:

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

person Antonio Pavicevac-Ortiz    schedule 10.10.2015    source источник


Ответы (1)


Browserify-shim make позволяет вам экспортировать модуль на основе предоставленного вами сопоставления. Итак, в вашем примере вы должны потребовать свой модуль через mixitup, например. var mixitup = require('mixitup');. Вы получаете сообщение об ошибке модуля, потому что ищете модуль с именем jquery.mixitup.js. Подробнее о том, как работает модульная система узла, здесь.

Вам не нужен exports, так как browserify-shim по умолчанию экспортирует псевдоним (документы):

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

Вам также не нужно использовать debowerify, если вы используете browserify-shim.

person Nick Tomlin    schedule 10.10.2015
comment
Привет, Ник! Вы искали, и оказалось, что proxyquire относится к тестированию? Итак, я полагаю, что остальная часть вашей рекомендации требует реализации proxquire? - person Antonio Pavicevac-Ortiz; 11.10.2015
comment
Большой! Эй, по вашему опыту, вы сталкивались с хорошим TUT, который начинается, может быть, с jQuery и другим плагином. Просто чтобы я мог замерзнуть. На странице документа broserify есть один, относящийся к ember, но я все еще немного зелен (очевидно!) СПАСИБО! - person Antonio Pavicevac-Ortiz; 11.10.2015