shasoft
@shasoft

Как написать js файл чтобы он чтобы он подцепился и в webpack и в node?

Пишу вот так
function fnTest(line) {
    return line.split('');
}
// Добавить правило в очередь правил
module.exports = function (line) {
   return [].concat(fnTest(line),fnTest(line+line));
};
Получаю ошибку "Uncaught TypeError: Cannot assign to read only property 'exports' of object" в браузере (сборка через Vue CLI)
Если убрать функцию fnTest, то все нормально, ошибки нет. Путем долгих переборов вариантов выяснил что ошибку дает код line.split(''), если его убрать, то все нормально.

При этом в Node все работает и так и так. Как писать, чтобы и там и там работало? Т.е. и при сборке и при использовании напрямую.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
shasoft
@shasoft Автор вопроса
Судя по всему тут дело не в экспорте, а в функции line.split

В качестве решения заменил str.split на
const split = require("lodash/split");

Для полномасштабных проектов можно использовать https://www.npmjs.com/package/esm
node -r esm <js файл>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
HistoryART
@HistoryART
Целеустремлённый
Во первых,никогда не ставьте ; после экспорта.
Во вторых экспортировать нужно функцию,а вызывать в файле
Откуда экспортим(допустим func.js)
function fnTest(line) {
    console.log('line', line.split(''));
}
// Добавить правило в очередь правил
module.exports = { fnTest }


Куда экспортим

const { fnTest } = require('func')

fnTest('aaa')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Junto Москва
от 90 000 до 120 000 руб.
от 200 000 до 250 000 руб.
ФГУП ЦНИИС Москва
от 130 000 до 180 000 руб.
06 дек. 2019, в 17:44
5000 руб./за проект
06 дек. 2019, в 17:41
1500 руб./за проект
06 дек. 2019, в 17:10
3000 руб./за проект