Node CLI argv (массив аргументов) пуст

#node.js #typescript #webpack #nodes

#node.js #typescript #webpack #узлы

Вопрос:

Я создаю свой первый модуль узла командной строки, используя Typescript, который передается с помощью Webpack. Процесс.свойство argv, в котором я ожидаю найти массив аргументов командной строки, пусто. В настоящее время единственный код, который у меня есть, просто регистрирует объект процесса на консоли. Это результат.

 myArgs:  { nextTick: [Function],
 title: 'browser',
 browser: true,
 env: {},
 argv: [],
 version: '',
 versions: {},
 on: [Function: noop],
 addListener: [Function: noop],
 once: [Function: noop],
 off: [Function: noop],
 removeListener: [Function: noop],
 removeAllListeners: [Function: noop],
 emit: [Function: noop],
 binding: [Function],
 cwd: [Function],
 chdir: [Function],
 umask: [Function] }
  

Я заметил, что для «браузера» установлено значение true. Означает ли это, что узел считает, что он запущен в браузере, а не в командной строке.

К вашему сведению: я работаю на OSX.

Комментарии:

1. Ваш код был бы полезен.

Ответ №1:

Спасибо Джейсону Ливсею за то, что наставил меня на правильный путь. Целью по умолчанию для Webpack является браузер.

Для того, чтобы «упаковать» модуль, который выполняется в среде, подобной узлу, вы должны установить свойство ‘target’ в вашем ‘webpack.config.js ‘в ‘узел’, как в моем примере ниже:

     var config = {
    target: 'node',
    entry: './src/index.ts',
    output: {
        filename: 'dist/index.js'
    },
    resolve: {
        extensions: ['', '.webpack.js', '.web.js', '.ts', '.js']
   },
    module: {
        loaders: [
        { test: /.ts$/, loader: 'ts-loader' }
        ]
    },
   externals : {
        "archiver" : "archiver",
        "lodash" : "lodash",
        "xmlbuilder" : "xmlbuilder",
    }
};

module.exports = config;
  

Ответ №2:

Почему вы используете webpack в коде сервера — это для браузера и объясняет argv проблему.

Комментарии:

1. Я использую его для упаковки своих модулей в один файл. Мои модули не те, на которые я ссылаюсь из node_modules .