@mishapsv

Как настроить переменные окружения (NODE_PATH)?

Постоянно сталкиваюсь с проблемой NODE_PATH
К примеру, в package.json прописано
"scripts": {
    "start": "NODE_PATH=$NODE_PATH:./shared node --harmony .",
    "dev": "npm run start & webpack-dev-server --progress --color",
    "build": "NODE_ENV=production webpack --progress --color -p --config webpack.prod.config.js"
  },

Сборка спотыкается на NODE_PATH
"NODE_PATH не является внутренней или внешней командой, исполняемой программой..."

Как я понимаю проблема в том, что сборка писалась на UNIX системах, а у меня Виндоус.
Нужно задать переменные окружения
Вроде задал
d289a86d2bcf496597fe2966ce0a2395.jpg
Но не помогает.
  • Вопрос задан
  • 16942 просмотра
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Каждое значение в scripts — это, по сути, скрипт операционной системы. Все верно, написаны они для *nix, и под виндой работать не будут даже при всех переменных окружения, потому что конструкция типа NODE_PATH=$NODE_PATH:./shared не является валидной для виндового интерпретатора командной строки. Надо исправить на что-то такое: SET NODE_PATH=%NODE_PATH%;.\shared. Скорее всего, путь к папке shared должен быть абсолютным.
Команду build надо поменять как-то так:
cmd /C "set NODE_ENV=production && webpack --progress --color -p --config webpack.prod.config.js"


Другие способы:
1) сделать форк, написать на JS кросс-платформенные скрипты, которые запускают нужные вещи с нужными параметрами, положить их в папку bin проекта и послать pull-request
2) одуматься и перейти на линукс.

P.S. Сейчас для кроссплатформенного запуска с нужными переменными среды есть set-env (не путать с setenv).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Попробуйте в командной строке (от админа)
npm install node-static
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы