Как включить node_modules в пакет для производства? - PullRequest
0 голосов
/ 04 июля 2019

Я создаю приложение NodeJS, используя TypeScript и упакованный с Webpack.При создании комплекта все внешние модули не импортируются, что приводит к ошибке пути.

Google, Stackoverflow, для моего случая ничего интересного нет.

var webpack = require('webpack');
var path = require('path');
var fs = require('fs');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');

var nodeModules = {};
fs.readdirSync('node_modules')
  .filter(function (x) {
    return ['.bin'].indexOf(x) === -1;
  })
  .forEach(function (mod) {
    nodeModules[mod] = 'commonjs ' + mod;
  });

module.exports = {
  mode: 'production',
  entry: './src/proxy/main.ts',
  target: 'node',
  output: {
    filename: 'main.js',
    path: path.resolve(path.join(__dirname, '../../'), 'dist/proxy')
  },
  plugins: [
    new UglifyJsPlugin({
      test: /\.js($|\?)/i
    })
  ],
  resolve: {
    extensions: ['.ts', '.tsx', '.js'],
    plugins: [new TsconfigPathsPlugin()]
  },
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        loader: 'ts-loader'
      }
    ]
  },
  externals: nodeModules
};

Внешние элементы подходят дляразработки, но когда дело доходит до производства, мне нужно собрать все внешние библиотеки в main.js.

1 Ответ

0 голосов
/ 07 июля 2019

Я бы посоветовал сохранить ваш конфигурационный файл таким образом, с внешними, он намного удобнее и эффективнее. Я предполагаю, что вы перемещаете свой пакет в другой каталог, поэтому обязательно переместите node_modules/, иначе узел не найдет зависимости.

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