Настройте веб-пакет так, чтобы он требовал наличия файла в приложении конечного пользователя. - PullRequest
1 голос
/ 07 июня 2019

Если я разрабатываю модуль узла следующим образом:

// index.js in library
const loadRoutes = () => require('./routes.js')
export default loadRoutes

Затем свяжите его с помощью веб-пакета:

// webpack.config.js
module.exports = {
  entry: './index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'index.js',
    libraryTarget: 'commonjs2'
  },
  mode: 'development'
}

Затем в приложении конечного пользователя, когда я импортирую библиотеку, я хочу, чтобы require('./routes.js') требовал routes.js относительно приложения.

import loadRoutes from 'myLib'
loadRoutes()

Но выдает исключение: Can not find module './routes.js'.

Я пытался использовать плагин игнорирования webpack . Но это не работает так, как я ожидал. Конфигурация веб-пакета:

module.exports = {
  entry: './index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'index.js',
    libraryTarget: 'commonjs2'
  },
  plugins: [
    new webpack.IgnorePlugin(/routes\.js/)
  ],
  mode: 'development'
}

Я не знаю, почему такую ​​полезную вещь так сложно реализовать в веб-пакете. Я делаю это неправильно? или что?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...