| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /**
- * React Starter Kit (https://www.reactstarterkit.com/)
- *
- * Copyright © 2014-2016 Kriasoft, LLC. All rights reserved.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE.txt file in the root directory of this source tree.
- */
- import path from 'path';
- import gaze from 'gaze';
- import replace from 'replace';
- import Promise from 'bluebird';
- /**
- * Copies static files such as robots.txt, favicon.ico to the
- * output (build) folder.
- */
- async function copy({ watch } = {}) {
- const ncp = Promise.promisify(require('ncp'));
- await Promise.all([
- ncp('src/public', 'build/public'),
- ncp('src/content', 'build/content'),
- ncp('package.json', 'build/package.json'),
- ]);
- replace({
- regex: '"start".*',
- replacement: '"start": "node server.js"',
- paths: ['build/package.json'],
- recursive: false,
- silent: false,
- });
- if (watch) {
- const watcher = await new Promise((resolve, reject) => {
- gaze('src/content/**/*.*', (err, val) => err ? reject(err) : resolve(val));
- });
- watcher.on('changed', async (file) => {
- const relPath = file.substr(path.join(__dirname, '../src/content/').length);
- await ncp(`src/content/${relPath}`, `build/content/${relPath}`);
- });
- }
- }
- export default copy;
|