NPM / React: копировальные файлы не работают правильно - PullRequest
0 голосов
/ 12 сентября 2018

Django 2.0, Node.js 8.11.4

У меня есть проект djanog формата:

reactify/
└── src/
    ├── reactify-ui/
    |   ├── build/
    |   |   └── static/
    |   |       └── js/
    |   |           └── main.3425.js
    |   └── package.json
    └── staticfiles/
        └── js/
            └── reactify-django-us.js

Я хочу заменить содержимое \reactify\src\staticfiles\js на то, что в\reactify\src\reactify-ui\build\static\js\*

Мой packages.json выглядит так

    "scripts": {
     ...
    "copy-build-js": "copyfiles -f 'build/static/js/*.js' '../staticfiles/js/'",,
     ...
  }

Когда я запускаю npm copy-build-js, я получаю следующий вывод:

> reactify-ui@0.1.0 copy-build-js    C:\Users\Owner\dev\reactifydjango\src\reactify-ui
> copyfiles -f 'build/static/js/*.js' '../staticfiles/js/'

Это выглядит такработает, но когда я проверяю файл в целевой папке ../staticfiles/js/, он не меняется.Я проверяю его по

changing the file before I run the command,
do an `ls -lrth` to get the timetamp, 
wait a minute so the timestamp changes, 
run the command `npm copy-build-js`,  
and then doing an `ls -lrth` on the target location and seeing that the timestamp isn't post hasn't changed.
I also look at the file and it is the same.

Почему копировальные файлы не работают?

1 Ответ

0 голосов
/ 12 сентября 2018

У вас правильная структура, но в пакете copyfiles есть некоторые странности, которые вы пропустили.Используйте его в качестве сценария:

"copy-build-js": "del /F \"../staticfiles/js\" && copyfiles -E -f \"./build/static/js/*.js\" ../staticfiles/js"

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

Пакет copyfilesне имеет возможности заменить все файлы в каталоге, даже если имена файлов не существуют, поэтому сначала необходимо запустить del /F \"../staticfiles/js\", чтобы удалить все файлы в каталоге src/staticfiles/js.Эта команда предполагает, что вы работаете в Windows.

Затем вы запускаете copyfiles -E -f \"./build/static/js/*.js\" ../staticfiles/js.Что вы пропустили, так это то, что при использовании подстановочных знаков / глобусов с этим пакетом (*) вы должны удвоить в кавычках.Если в местоположении нет подстановочного знака, вам вообще не нужны кавычки.Я добавил флаг -E, который выдает ошибку, если файлы не копируются, что потенциально может спасти вас в дальнейшем.

...