Почему webpack включает node_modules зависимости?

У меня есть два модуля в одном каталоге, оба управляются lerna js. Один из них — это библиотека, которую включают в себя другие модули. Оба они упакованы webpack после авторской библиотеки webpack.

Но когда я запускаю веб-пакет в каталоге приложения, процесс включает все зависимости library/node_modules внутри приложения, например vue.js. В библиотеке vue — «devDependency», а в приложении — «зависимости». Это подразумевает два контекста Vue в navigator. Кто-нибудь знает, почему?

Спасибо.


person Ramón    schedule 07.09.2017    source источник


Ответы (2)


Вам нужно добавить псевдоним:

module.exports = {
...
....
},
resolve: {
    modules: ["node_modules",
    alias: {
        'vue$': 'vue/dist/vue',
        'jquery': 'jquery/dist/jquery.min.js'
    }
},
...
person CodeHacker    schedule 08.09.2017

Спасибо @evocateur

«Node разрешает символические ссылки, когда это требуется, что означает, что библиотеки (такие как React и Vue), которые являются синглтонами, сломаются. Вам нужно добавить resolve.alias конфигурацию веб-пакета, чтобы он всегда выбирал «корневые» node_modules пакеты».

Установка следующего веб-пакета отлично работает в resolve.alias:

vue: path.resolve(__dirname, './node_modules/vue/')

person Ramón    schedule 07.09.2017