Обслуживающая сборка, `module.exports` не поддается изменению?

#javascript #node.js #reactjs #npm #webpack

#javascript #node.js #reactjs #npm #webpack

Вопрос:

Во время разработки я могу свободно делать:

Getters.js

 let Getters = {}
Getters.foo = function(){ return 1; } 
Getters.bar = function(){ return 2; }
module.exports = Getters;
  

Но после npm run build и serve -s build -l 4000 я получаю сообщение об ошибке:

 Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>'
    at Module.<anonymous> (Getters.js:954)
  

Есть ли простой способ решить эту проблему?

Редактировать

Файл, который импортирует Getters.js является ли AbstractNavBar.js:

 import React from 'react';
import { useDispatch, useStore, useSelector } from 'react-redux';
import { selectNavMenuItem } from './ActionCreators';

let Getters = require('./Getters');

function AbstractNavBar( { options, name } ){

  let active = useSelector( state => 
    Getters.getActiveMenuItem( state, name )
  )
  let dispatch = useDispatch();
  let items = options.map(
    item => (
      <li class="nav-item">
      <a id={name '-' item.href}
      class={"nav-link"   (item.href === active ? " active " : "")} 
      href="#" 
      onClick={e=>{
    dispatch(selectNavMenuItem( name, item.href ))}}>
      {item.label}
      </a>
      </li>
    )
  )
  return (
    <div class="navbar">
    <ul class="nav nav-pills">
    { items }
    </ul>
    </div>
  )
}

export default AbstractNavBar;
  

Я должен отметить, что код отлично работает на сервере разработки, но просто перестает работать после сборки, а затем отправки.

Комментарии:

1. github.com/webpack/webpack/issues/4039

2. Насколько это актуально?

3. Вы проверили документы webpack? webpack.js.org/api/module-methods

4. можете ли вы опубликовать код файла, который вы импортируете и используете Getters module?

5. @KhanhLeTran, добавлен файл