2015-10-10 3 views
5

Я пытаюсь преобразовать существующий веб-сайт, чтобы использовать Webpack, но все существующие требуют пути являются абсолютными:Как разрешить абсолютные требуемые пути с помощью webpack?

var Component = require('/path/to/my/component'); 

Я читал через webpack documentation, а также нашли this answer о разрешении путей, но WASN» t вполне способен решить мою проблему. При установке resolve.root в соответствии с инструкциями в ответ выше, я был в состоянии получить следующие работы:

var Component = require('./path/to/my/component'); 
var Component = require('path/to/my/component'); 

Однако я до сих пор не могу понять, как получить абсолютный путь работать, и я бы действительно предпочитают не проходить и обновлять все мои пути. Вот структура сайта:

/app 
    /assets 
    /javascripts 
     /build 
     package.js 
     index.js 
/node_modules 

webpack.config.js:

var JS_ROOT = __dirname + '/app/assets/javascripts'); 

module.exports = { 
    entry: JS_ROOT + '/index', 
    output: { 
    path: JS_ROOT + '/build', 
    filename: 'package.js' 
    }, 
    ... 
    resolve: { 
    root: JS_ROOT 
    } 
}; 

Ошибка я получаю является:

Module not found: Error: Cannot resolve 'file' or 'directory' /path/to/component in /Users/<username>/<ProjectRoot>/app/assets/javascripts 

Что я делаю неправильно?

+0

It похоже [это в основном то, что я хочу] (https://webpack.github.io/docs/resolving.html#resolving-an-absolute-path). Однако я смущен тем, где определить поле 'main'. – ericgio

+0

Вы нашли решение? – mpolci

+0

Вероятно, не очень полезно, но я закончил тем, что просто сделал кодовый код и изменил пути: 'var Component = require ('path/to/my/component');' – ericgio

ответ

2

Возможно, параметр конфигурации resolve.root может быть тем, чем вы являетесь. Здесь задокументировано: http://webpack.github.io/docs/configuration.html#resolve-root

resolve.root Справочник (абсолютный путь), содержащий ваши модули. Может также быть массивом каталогов. Этот параметр следует использовать для , чтобы добавить отдельные каталоги к пути поиска.

Это должен быть абсолютный путь! Не пропускайте что-то вроде ./app/modules.

Пример:

вар путь = требуется ('путь');

// ... Решимость: {корень: [ path.resolve (»./ приложения/модули '), path.resolve (' ./ поставщика/модули)]}

+0

'path.resolve()' разрешает путь к его абсолютной форме - см. https://nodejs.org/docs/latest/api/path.html#path_path_resolve_from_to – Sacho

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