Как установить env в пакете. json, который используется в .bablerc - PullRequest
1 голос
/ 02 марта 2020

Я пытаюсь запустить Jest-тесты как часть скрипта, прежде чем затем запустить веб-пакет, например:

npm run test
webpack --progress --profile --watch --mode development

Jest работает только с скомпилированным кодом, поэтому я установил свой .babelr c к следующему, который сработал, однако затем он переместил весь мой код в веб-пакете, который мне не нужен, в режиме разработки я хочу оставить JavaScript без транспорта, чтобы я мог работать с ним, не запутывая его.

{
   "presets": [ "@babel/preset-env" ]
}

Вместо этого я хочу запустить Jest, вызвав 'npm run test', после чего я могу указать только, что скрипт передает код, а затем веб-пакет запускается без транспаранта, я надеялся, что-то подобное в моем .babelr c file

{
    "env": {
      "test": {
        "presets": [ "@babel/preset-env" ]
      }
    }
}

Затем в моем пакете. json Я мог бы настроить env для проверки, которая затем оставляла бы webpack один.

"scripts": {
  "test": "SET env=test&& jest --config jest.config.js"
}

С этой настройкой я все еще получаю следующее сообщение, появляющееся при запуске npm run test ', которое показывает, что файл babelr c не был получен.

Jest обнаружил неожиданный токен. Обычно это означает, что вы пытаетесь импортировать файл, который Jest не может проанализировать, например, он не прост JavaScript.

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 02 марта 2020

Получается, что мой тест был в порядке в файле .babelr c

{
    "env": {
      "test": {
        "presets": [ "@babel/preset-env" ]
      }
    }
}

И скрипт, необходимый в моем пакете. json это был без установки какого-либо узла env

"scripts": {
  "test": "jest --config jest.config.js"
}

На самом деле это был мой скрипт веб-пакета, который не был настроен правильно, мне нужно было добавить '--env.NODE_ENV = development' в конце

webpack --progress --profile --watch --mode development --env.NODE_ENV=development

, который затем можно было проверить в моем веб-пакете .config файл.

module.exports = (env) => {
    const isDevelopment = env && env.NODE_ENV === 'development';
    ...

тогда в моих правилах тест для isDevelopment

rules: [{
    test: /\.js$/,
    exclude: /(node_modules|bower_components)/,
    use: {
        loader: 'babel-loader',
        options: isDevelopment ? {} : { presets: ['@babel/preset-env'] }
    }
},
...