2015-12-29 2 views
1

это пример структуры FOLDERкак требуется модуль без указания пути к файлу

folder1 
--lib 
----app.js 

folder 2 
--www 
----Application.js 

Файл application.js в folder2 требует app.js файл из folder1 следующим образом var app = require('../../folder1/lib/app') , а затем Application.js - браузер.

То, что я хочу достичь, требует app.js в Application.js без упоминания пути .ie var app = require('app') и без изменения структуры папок, но при его браунировании он отображает фактический файл ie folder1/lib/app .js для require ('приложение').

EDIT

Я думал о создании файла в folder1, который будет отвечать на browserify код в folder2. Ex: $ folder2> узла ../folder1/build.js WWW/application.js породит browserified отображение файлов требуется ('приложение') к app.js в Folder1

+1

Вы отметили свой вопрос с помощью [tag: requirejs]. Как вы на самом деле используете RequireJS? (Как его загрузить, настроить и т. Д.) – Louis

+0

Я создаю скрипт с браузером ex: borwserify Application.js> path/to/some/folder, а requirejs содержит фактические пути –

+1

Я удалил [tag : requirejs] из вашего вопроса, поскольку вы, похоже, не используете его. Обратите внимание, что RequireJS является [* конкретным продуктом *] (http://requirejs.org/docs/api.html). Тег относится к вопросам, относящимся к этому продукту. – Louis

ответ

1

Я предпочитаю использовать app-module-path для это.

Моя структура папок:

index.js 
app/ 
    lib/ 
    hash.js 
    controllers/ 
    index.js 
    middleware/ 
    auth.js 

и index.js:

require('app-module-path').addPath(__dirname); 

Тогда, например, в controllers/index.js, я могу это сделать:

var auth = require('app/middleware/auth'); 
var hash = require('app/lib/hash'); 

Это для nodejs. Теперь для браузера вы можете использовать aliasify.

replacements: { 
    "app/(\\w+)": "app/$1" 
} 

Это делает вещи намного чище.

Смежные вопросы