Я использую веб-пакет для объединения нескольких внутренних сценариев в один файл во время процесса развертывания.
При подключении к базе данных MongoDB существует необязательная зависимость, которая выдает предупреждение, если ононе включены.
Warning: no saslprep library specified. Passwords will not be sanitized
В моей среде разработки эту ошибку легко устранить, установив необязательную зависимость.
npm install saslprep --save
Однако при связывании с веб-пакетом необязательная зависимость не включается и предупреждениесохраняется в производственном развертывании. Я могу легко отследить причину этого, библиотека mongodb требует этого в качестве необязательной зависимости:
let saslprep;
try {
saslprep = require('saslprep');
} catch (e) {
// don't do anything;
}
Я пытался следовать документации веб-пакета, используя шимминг, внешние компоненты, плагины и, честно говоря, совершенно потерянправильный подход к решению этой проблемы. Вот мой текущий файл webpack.config (пытающийся потребовать это как плагин).
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: './src/api/index.ts',
target: 'node',
mode: 'production',
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'ts-loader',
exclude: /node_modules/
}
]
},
resolve: {
extensions: ['.js', '.tsx', '.ts', '.json']
},
output: {
filename: 'api.js',
path: path.resolve(__dirname, 'dist'),
},
plugins: [
new webpack.IgnorePlugin(/fsevents/),
new webpack.IgnorePlugin(/blessed/),
new webpack.ProvidePlugin({
saslprep: path.resolve(__dirname, "node_modules/saslprep/index.js")
})
],
};
Заранее спасибо.