Webpack nodejs lib получает пустой объект - PullRequest
0 голосов
/ 03 мая 2020

Я создал ваниль 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 с разделенным кодом, он работает просто отлично .

Есть идеи, какую конфигурацию мне не хватает?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...