Я взял этот проект https://github.com/conversejs/converse.js и создал альтернативную конфигурацию wepack, которая создает из нее библиотеку, чтобы я мог использовать ее в своем проекте node (nuxt. js). Конфигурация выглядит следующим образом:
const merge = require("webpack-merge");
const prod = require("./webpack.prod.js");
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = merge(prod, {
target: 'node',
output: {
filename: 'my-converse.js',
library: 'ppdConverse',
},
optimization: {
minimize: true,
},
devtool: 'source-map',
plugins: [
new MiniCssExtractPlugin({filename: '../dist/converse.css'}),
],
});
Я также немного изменил package.json
в соответствии с Руководством по веб-пакету :
{
"name": "converse.js",
"version": "7.0.0",
"description": "Browser based XMPP chat client",
"module": "./src/converse.js",
"main": "./dist/my-converse.js",
...
}
Затем я запускаю webpack --config webpack.node.js
и он создает dist/
dir с некоторыми файлами в нем без ошибок.
Проблема в том, что я не могу использовать его, когда импортирую его в проект моего другого узла (nuxt. js). Я устанавливаю его с помощью следующей команды:
npm i --save ~/my-projects/lib/converse.js
И я пытаюсь импортировать его так:
import 'converse.js'
Но когда я запускаю свой проект, он терпит неудачу с кучей ошибок о отсутствующие загрузчики и отсутствующие зависимости (хвост вывода):
WARN in ../lib/converse.js/locale/nb/LC_MESSAGES/converse.po friendly-errors 09:39:21
Module parse failed: Unexpected token (1:6) friendly-errors 09:39:21
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> msgid ""
| msgstr ""
| "Project-Id-Version: Converse JS 0.8.6\n"
friendly-errors 09:39:21
@ ../lib/converse.js/locale lazy ^\.\/.*\/LC_MESSAGES\/converse\.po$ namespace object
@ ../lib/converse.js/src/headless/i18n.js
@ ../lib/converse.js/src/headless/converse-core.js
@ ../lib/converse.js/src/converse.js
@ ./plugins/converse-nuxt.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi eventsource-polyfill webpack-hot-middleware/client?reload=true&timeout=30000&ansiColors=&overlayStyles=&name=client&path=/__webpack_hmr/client ./.nuxt/client.js
friendly-errors 09:39:21
ERROR Failed to compile with 21 errors friendly-errors 09:39:21
These dependencies were not found: friendly-errors 09:39:21
friendly-errors 09:39:21
* converse-autocomplete in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-bookmark-views in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-chatview in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-controlbox in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-dragresize in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-emoji-views in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-fullscreen in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-headlines-view in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-mam-views in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-minimize in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-muc-views in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-notification in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-omemo in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-profile in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-push in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-register in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-roomslist in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-rosterview in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-singleton in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
* converse-uniview in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
friendly-errors 09:39:21
To install them, you can run: npm install --save converse-autocomplete converse-bookmark-views converse-chatview converse-controlbox converse-dragresize converse-emoji-views converse-fullscreen converse-headlines-view converse-mam-views converse-minimize converse-muc-views converse-notification converse-omemo converse-profile converse-push converse-register converse-roomslist converse-rosterview converse-singleton converse-uniview
friendly-errors 09:39:21
(repeated 0 times) friendly-errors 09:39:21
This relative module was not found: friendly-errors 09:39:21
friendly-errors 09:39:21
* ../sass/converse.scss in ../lib/converse.js/src/converse.js friendly-errors 09:39:21
Несмотря на наличие файлов!
Единственный способ, которым он работает, - импортировать файлы, созданные в папке dist:
import 'converse.js/dist/my-converse.js'
Так что я тут не так делаю?