Предварительно, я хочу признать, что это мое первое погружение в веб-пакет на любой глубине, и я мог упустить что-то очевидное.
Я занимаюсь разработкой node JS
сценария, который работает как агент дляпредоставлять функции и данные клиентскому приложению HTML5 / JS в моей целевой среде.Часть API предоставляется в node_modules целевой среды во время выполнения, а не во время сборки.В своем коде я предоставляю ему const phoenix = require('@phoenix/apis/dist/index');
Запущенный веб-пакет, все в порядке, но когда я пытаюсь запустить скрипт, я сталкиваюсь с:
Неверный или неожиданный токенat Object. @ phoenix / apis / dist / index (/home/path/node_modules/AgendaWeb_0.0.1/main.js:2312:1)
Это имеет смысл, поскольку веб-пакет превращает те, которые требуют вthis:
eval("module.exports = @phoenix/apis/dist/index;\n\n//# sourceURL=webpack:///external_%22@phoenix/apis/dist/index%22?");
И @phoenix
не будет допустимым именем модуля / объекта для работы.
Мне в основном нужен веб-пакет, чтобы просто оставить запрос в одиночестве (я не знаю, имеет ли это смысл в контексте пакетирования), чтобы экземпляр узла мог ввести модуль в среду, в которой он работает.
Вот мой конфиг веб-пакета:
module.exports = {
entry: {
main: './src/agendaAgent'
},
output: {
path: path.resolve(__dirname, './prod/')
},
externals: /@phoenix/,
target: 'node',
plugins: [
new CleanWebpackPlugin(),
new CopyPlugin([{from:'./manifest.json', to:'./'}]),
new webpack.DefinePlugin({ 'global.GENTLY': false })
]
};
Я ожидаю, что есть способ включить внешний модуль, на который будет ссылаться во время выполнения (в каталоге node_modules/@phoenix
- так оно и есть в настоящее время).работает вне упакованного кода)
До сих пор я пытался использовать внешние (как указано выше) и пытался использовать resol.alias, чтобы дать ему прямой путь к библиотекам (это не очень хорошее решение, так какмодуль не является частью среды разработки - я тоже не работал).Я также пытался использовать IgnorePlugin, но если я правильно его понимаю, он только препятствует созданию соответствующего модуля.
Любая помощь или руководство приветствуются.