Я создал ваниль js lib (nodejs) для сканирования веб-сайта ( cei-crawler ).
Я использую Webpack и Babel для объединения и переноса Это. Мне пришлось представить babel, потому что Webpack жаловался на некоторые функции, такие как class fields
.
Дело в том, что минимизированный пакетный код просто не работает. Я пытаюсь require
это и получить пустой объект.
Вот мой webpack.conf.js
:
const path = require('path');
const nodeExternals = require('webpack-node-externals');
let config = {
entry: './src/app.js',
target: 'node',
externals: [nodeExternals()],
module: {
rules: [
{
test: /\.(js)$/,
exclude: /node_modules/,
use: ['babel-loader']
}
]
},
resolve: {
extensions: ['*', '.js']
},
output: {
filename: 'app.js',
path: path.resolve(__dirname, 'dist'),
}
};
module.exports = config;
и мой package.json
с конфигурацией babel:
{
"name": "cei-crawler",
// ...
"babel": {
"presets": [
"@babel/preset-env"
],
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-runtime"
],
"sourceType": "unambiguous"
}
}
Затем, если я запускаю npm link
со связанным кодом и пытаюсь использовать его, я получаю пустой объект:
const ceiCrawler = require('cei-crawler');
console.log(ceiCrawler); // {}
Если я использую npm link
с разделенным кодом, он работает просто отлично .
Есть идеи, какую конфигурацию мне не хватает?
Спасибо!