Browse Source

npm installation feature

NGPixel 8 năm trước cách đây
mục cha
commit
e0bb77efbb
5 tập tin đã thay đổi với 73 bổ sung19 xóa
  1. 9 8
      README.md
  2. 30 1
      npm/README.md
  3. 30 5
      npm/install.js
  4. 2 3
      npm/package.json
  5. 2 2
      package.json

+ 9 - 8
README.md

@@ -4,14 +4,15 @@
 
 # Wiki.js
 
-[![Release](https://img.shields.io/github/release/Requarks/wiki.svg?maxAge=3600)](https://github.com/Requarks/wiki/releases)
-[![License](https://img.shields.io/badge/license-AGPLv3-blue.svg)](https://github.com/requarks/wiki/blob/master/LICENSE)
-[![Github All Releases](https://img.shields.io/github/downloads/Requarks/wiki/total.svg)](https://github.com/Requarks/wiki/releases/latest)
-[![Build Status](https://travis-ci.org/Requarks/wiki.svg?branch=master)](https://travis-ci.org/Requarks/wiki)
-[![Codacy Badge](https://api.codacy.com/project/badge/Grade/1d0217a3153c4595bdedb322263e55c8)](https://www.codacy.com/app/Requarks/wiki)
-[![Dependency Status](https://gemnasium.com/badges/github.com/Requarks/wiki.svg)](https://gemnasium.com/github.com/Requarks/wiki)
-[![Known Vulnerabilities](https://snyk.io/test/github/requarks/wiki/badge.svg)](https://snyk.io/test/github/requarks/wiki)
-[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
+[![Release](https://img.shields.io/github/release/Requarks/wiki.svg?style=flat-square&maxAge=3600)](https://github.com/Requarks/wiki/releases)
+[![License](https://img.shields.io/badge/license-AGPLv3-blue.svg?style=flat-square)](https://github.com/requarks/wiki/blob/master/LICENSE)
+[![npm](https://img.shields.io/badge/npm-wiki.js-blue.svg?style=flat-square)](https://www.npmjs.com/package/wiki.js)
+[![Github All Releases](https://img.shields.io/github/downloads/Requarks/wiki/total.svg?style=flat-square)](https://github.com/Requarks/wiki/releases/latest)
+[![Build Status](https://img.shields.io/travis/Requarks/wiki/master.svg?style=flat-square)](https://travis-ci.org/Requarks/wiki)
+[![Codacy Badge](https://img.shields.io/codacy/grade/1d0217a3153c4595bdedb322263e55c8/master.svg?style=flat-square)](https://www.codacy.com/app/Requarks/wiki)
+[![Dependency Status](https://img.shields.io/gemnasium/Requarks/wiki.svg?style=flat-square)](https://gemnasium.com/github.com/Requarks/wiki)
+[![Known Vulnerabilities](https://snyk.io/test/github/requarks/wiki/badge.svg?style=flat-square)](https://snyk.io/test/github/requarks/wiki)
+[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](http://standardjs.com/)
 
 ##### A modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown
 *Under active development*

+ 30 - 1
npm/README.md

@@ -1 +1,30 @@
-Under development
+<a href="https://github.com/Requarks/wiki">
+    <img src="https://raw.githubusercontent.com/Requarks/wiki/master/assets/favicons/favicon-96x96.png" alt="Wiki.js" title="Wiki.js" align="right" />
+</a>
+
+# Wiki.js
+
+[![npm](https://img.shields.io/npm/v/wiki.js.svg?style=flat-square)](https://github.com/Requarks)
+[![Release](https://img.shields.io/github/release/Requarks/wiki.svg?style=flat-square&maxAge=3600)](https://github.com/Requarks/wiki/releases)
+[![License](https://img.shields.io/badge/license-AGPLv3-blue.svg?style=flat-square)](https://github.com/requarks/wiki/blob/master/LICENSE)
+
+##### A modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown
+
+This npm package is an installer for Wiki.js. For information about Wiki.js, use the following links:
+
+- [Official Website](https://wiki.requarks.io/)
+- [Installation Guide](https://wiki.requarks.io/get-started.html)
+- [GitHub Repository](https://github.com/Requarks/wiki)
+
+### Install Wiki.js using npm
+
+1. Create an empty folder where Wiki.js will run.
+2. Launch a terminal / command prompt inside this newly created folder.
+3. Run the command: `npm install wiki.js@latest`
+4. Wait for the installation process to complete. This may take several minutes.
+5. Edit the file `config.yml` located in the root of your folder and change the settings accordingly.
+6. Run the command: `node wiki start`
+
+### Install Wiki.js manually
+
+For a manual installation, read the [Installation Guide](https://wiki.requarks.io/get-started.html).

+ 30 - 5
npm/install.js

@@ -2,6 +2,7 @@
 
 const ora = require('ora')('Initializing...').start()
 const Promise = require('bluebird')
+const exec = require('child_process').exec
 const fs = Promise.promisifyAll(require('fs-extra'))
 const https = require('follow-redirects').https
 const path = require('path')
@@ -41,23 +42,47 @@ fs.readJsonAsync('package.json').then((packageObj) => {
       })
     })
   })
+}).then(() => {
+  return new Promise((resolve, reject) => {
+    ora.text = 'Installing Wiki.js npm dependencies...'
+    let npmInstallProc = exec('npm install --only=production', {
+      cwd: installDir
+    })
+    npmInstallProc.stdout.pipe(process.stdout)
+    npmInstallProc.on('error', err => {
+      reject(err)
+    })
+    .on('exit', () => {
+      ora.text = 'Wiki.js npm dependencies installed successfully.'
+      resolve(true)
+    })
+  })
 }).then(() => {
   fs.accessAsync(path.join(installDir, 'config.yml')).then(() => {
     /**
      * Upgrade mode
      */
     ora.text = 'Upgrade succeeded. Reloading Wiki.js...'
-    return pm2.restartAsync('wiki').catch(err => { // eslint-disable-line handle-callback-err
-      return new Error('Unable to restart Wiki.js via pm2... Do a manual restart!')
-    }).then(() => {
-      ora.succeed('Wiki.js has restarted. Upgrade completed.')
+    return pm2.connectAsync().then(() => {
+      return pm2.restartAsync('wiki').catch(err => { // eslint-disable-line handle-callback-err
+        return new Error('Unable to restart Wiki.js via pm2... Do a manual restart!')
+      }).then(() => {
+        ora.succeed('Wiki.js has restarted. Upgrade completed.')
+      })
+    }).catch(err => {
+      ora.fail(err)
+    }).finally(() => {
+      pm2.disconnect()
     })
   }).catch(err => {
     /**
      * Install mode
      */
     if (err.code === 'ENOENT') {
-      ora.succeed('Installation succeeded. You can now continue with the configuration steps. Check out https://docs.wiki.requarks.io/install for more info.')
+      ora.text = 'First-time install, creating a new config.yml...'
+      return fs.copyAsync(path.join(installDir, 'config.sample.yml'), path.join(installDir, 'config.yml')).then(() => {
+        ora.succeed('Installation succeeded. You can now continue with the configuration steps. Check out https://docs.wiki.requarks.io/install for more info.')
+      })
     } else {
       return err
     }

+ 2 - 3
npm/package.json

@@ -1,12 +1,11 @@
 {
   "name": "wiki.js",
-  "version": "1.0.0-beta.6",
+  "version": "1.0.0-beta.7",
   "description": "A modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown",
   "main": "install.js",
   "scripts": {
     "test": "exit 1",
-    "install": "node install.js",
-    "preuninstall": "node uninstall.js"
+    "postinstall": "node install.js"
   },
   "repository": {
     "type": "git",

+ 2 - 2
package.json

@@ -1,6 +1,6 @@
 {
   "name": "wiki",
-  "version": "1.0.0-beta.6",
+  "version": "1.0.0-beta.7",
   "description": "A modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown",
   "main": "server.js",
   "scripts": {
@@ -89,7 +89,7 @@
     "pug": "^2.0.0-beta11",
     "read-chunk": "^2.0.0",
     "remove-markdown": "^0.1.0",
-    "requarks-core": "^0.2.1",
+    "requarks-core": "^0.2.2",
     "request": "^2.79.0",
     "search-index": "^0.9.9",
     "serve-favicon": "^2.3.2",