Brunch.io - требуется конфликт

Я использую coffeescript и brunch.io, чтобы скомпилировать свой проект в один файл app.js, и это здорово !!!!

  • в основном проекте у меня есть tools = require 'utils/tools'
  • в моей библиотеке у меня также есть каталог utils (отличный от каталога из основного проекта с файлом инструментов. Итак, в коде библиотеки: tools = require'utils/tools'

Затем в браузере я ищу как основной проект, так и мою библиотеку.

Большая проблема заключается в том, что бранч импортирует только первый utils/tools, а не второй (потому что все глобально, как я мог видеть, и utils/tools уже были установлены, я думаю).

Как я могу решить это? У меня уже есть две идеи, но я думаю, что могу найти что-то получше

  • 1 Решение: переименуйте папку (например, utils2/)
  • 2 Решение: переименуйте файл (например, utils/tools2.coffee)

Любая лучшая идея? Можно ли определить доменное имя или пространство имен для require?

С наилучшими пожеланиями

PS: это require из brunch.io, а не из nodeJS :P


person Yves Lange    schedule 08.07.2014    source источник
comment
Почему вы понизили этот вопрос?   -  person Yves Lange    schedule 08.07.2014
comment
существует множество реализаций require. Так что это может зависеть от реализации.   -  person Robert Zaremba    schedule 08.07.2014


Ответы (1)


ответ es128: https://github.com/brunch/brunch/issues/854

РЕШЕНИЕ

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

modules:
  nameCleaner: (path) ->
    "myComponentName/#{path.replace(/^app\//, '')}"

или эта более многоразовая версия, которая берет имя из package.json

{name} = require './package'

modules:
  nameCleaner: (path) ->
    path.replace /^app/, name```
person Yves Lange    schedule 08.07.2014