Просмотр обозреваемых библиотек, которые сами были просканированы: ошибка относительных путей

Я хочу использовать библиотеку, которая была создана с использованием браузера. Библиотека построена правильно и отлично работает, когда она используется сама по себе.

Теперь, когда библиотека построена находится в каталоге моих поставщиков /, и я пытаюсь выполнить ее в своем новом приложении:

var myLib = require('./vendors/myLib');

Когда я пытаюсь выполнить прорисовку своего приложения, он жалуется, что не может найти некоторые внутренние инструкции require внутри этой библиотеки:

Error: Cannot find module '../utils/logger' from '/myApp/vendor'

Browserify, похоже, пытается перестроить lib из неправильного каталога. Как я могу это исправить?


Подробнее:

Библиотека выглядит следующим образом:

myLib
 │  app.js
 │
 ├──models
 │    model.js
 │
 ├──utils
      logger.js

app requires и модель requires с помощью require('../utils/logger').

Затем встраивается в myLib.js(browserify app.js --standalone myLib > myLib.js).

Пока, так хорошо, myLib отлично работает.

В моем новом приложении я поместил myLib.js в каталог /vendor, require, как указано выше, и получите ошибку, которую Browserify не может найти... /utils/logger './/p >

В этой ситуации я управляю myLib, поэтому могу изменить его, если это абсолютно необходимо, но это еще один проект в компании, и я бы предпочел не при необходимости. Тем не менее, я вижу по крайней мере еще один вопрос о том, где кто-то явно имеет ту же проблему с установленной сторонней библиотекой.

Ответ 1

Кажется, что довольно borked.

Вот несколько вариантов:

  • Запустите derequire на myLib перед употреблением.

  • Попробуйте выполнить прорисовку своего приложения так:

    browserify({
      entries: ['./entry'],
      noParse: ['/abs/path/to/vendors/myLib.js'],
    })
    

    Если он не работает, попробуйте его без расширения в noParse.

  • Измените myLib перед его потреблением.

Ответ 2

aaaah, я наконец получил его работу. используя автономный вариант браузера, а также gulp -derequire сделал трюк! яй!