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 все работает и так и так. Как писать, чтобы и там и там работало? Т.е. и при сборке и при использовании напрямую.
  • Вопрос задан
  • 129 просмотров
Решения вопроса 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')
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы