npm bin return me "/ usr / local / bin / X: 1: / usr / local / bin / X: синтаксическая ошибка:" ("неожиданно" при вызове - PullRequest
0 голосов
/ 29 марта 2019

Так что я просто пытаюсь создать npm bin, который создает файл в текущем каталоге.

// ./index.js
const program = require('commander');
const fs = require('fs');
const path = require('path');

program
  .command('c <name> <content>')
  .action((name, content) => {
    fs.writeFile(path.resolve(process.cwd(), name), content, err => err ? console.error(err) : console.log('Success'));
  });

program.parse(process.argv);

Это не из-за fs, даже если я заменю writeFile на консоль.log У меня по-прежнему та же ошибка.

Вот мой package.json:

{
  "name": "test-crayzzit",
  "dependencies": {
    "commander": "^2.19.0"
  },
  "bin": {
    "testcc": "./index.js"
  },
  "version": "1.0.3"
}

Все работает хорошо, если я делаю что-то вроде node index.js test.txt hello

Но если яустановите пакет с помощью npm: sudo npm i -g test-crayzzit

и выполните testcc c test.txt hello

Он вернет мне ошибку: /usr/local/bin/testcc: 1: /usr/local/bin/testcc: Syntax error: "(" unexpected

Вы можете попробовать самостоятельно с пакетом: https://www.npmjs.com/package/test-crayzzit

1 Ответ

1 голос
/ 29 марта 2019

Похоже, ты скучаешь по Шебангу.Первая строка index.js должна выглядеть следующим образом:

#!/usr/bin/env node

Кроме того, файл должен иметь LF окончания строк для правильного чтения в MacOS, Linux и Windows, если вы хотите использовать пакет наразные платформы.

РЕДАКТИРОВАТЬ: Я проверил ваш пакет (та же ошибка для меня в Linux).Добавление shebang, как описано выше, работает для меня.

См. Также: Подходящий hashbang для скриптов Node.js

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