узел: переместите файлы в шаблоне create-реагировать на приложение в root после установки - PullRequest
2 голосов
/ 25 января 2020

У меня есть версия этого вопроса с изюминкой:

Я создаю create-react-app шаблон , в котором используются как электрон, так и редукция.

Я хочу переместить файлы конфигурации для веб-пакета и babel из каталога /src/config в root после установки. Однако добавление "postinstall": "cp /src/config ." к моему package.json файлу не работает. Похоже, этот файл и не template.json является правильным местом для добавления сценария postinstall, но по какой-то причине, возможно, из-за того, как система шаблонов управляет внутренними файловыми структурами (?), Этот сценарий выполняется после установки, но не удается. У меня есть файлы конфигурации на /template/src/config в моем опубликованном пакете.

РЕДАКТИРОВАТЬ: похоже, он работает, если я изменю сценарий postinstall на "cp template/src/config/* .", но он не копирует файлы.

Ответы [ 2 ]

2 голосов
/ 25 января 2020

Копирование файлов после сборки может быть надежно достигнуто во всех операционных системах с помощью пакета ncp и соответствующего сценария.

Как скопировать файлы после реактивной сборки?

1. Добавьте ncp в качестве зависимости в 'package. json'

  "dependencies": {
    "ncp": "2.0.0",
    ....
  }

2. Создайте сценарий копирования файлов, который будет рекурсивно копировать файлы из источника в место назначения

// File name: file-copy.js

var path = require('path');
var ncp = require('ncp').ncp;

ncp.limit = 16;

var srcPath = 'src/config'
var destPath = 'dst/config'

console.log('Copying files...');
ncp(srcPath, destPath, function (err) {
  if (err) {
    return console.error(err);
  }
  console.log('Copying files complete.');
});

3. Добавьте 'file file-copy. js' в качестве дополнительного шага к процессу сборки в пакете. json

  "scripts": {
    ...  

    "build": "react-scripts build && node file-copy.js"

    ...
  },

Примечание: После обновления пакета. json, запустите npm install один раз, чтобы установить / включить пакет ncp.

Альтернатива: npm add ncp в последней версии nodejs обновит пакет. json, а также включить ncp за один шаг.

4. Протестируйте процесс сборки, запустив 'npm run build'

$ npm run build

> ui@0.1.0 build /Users/macuser1/stack-overflow/ui
> react-scripts build && node file-copy.js

Creating an optimized production build...
Compiled successfully.

File sizes after gzip:

  40.32 KB         build/static/js/2.db436670.chunk.js
  1.24 KB (-20 B)  build/static/js/main.02386c69.chunk.js
  767 B            build/static/js/runtime-main.873e104b.js

...

Copying files...
Copying files complete.
Copying files complete.
$ 
1 голос
/ 26 января 2020

Оказалось, что решение было простым: если вам нужны файлы в шаблоне root, поместите их в каталог / template.

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