Просмотр исходного кода

change the location where plugin-definitions.js is generated and ignore

Yuki Takei 9 лет назад
Родитель
Сommit
e5a7d305c1

+ 1 - 0
.gitignore

@@ -24,6 +24,7 @@ npm-debug.log
 /.awcache
 .webpack.json
 /compiled/
+/tmp/
 
 # Doc #
 /doc/

+ 1 - 1
bin/generate-plugin-definitions-source.js

@@ -9,7 +9,7 @@ const swig = require('swig');
 const helpers = require('../config/helpers');
 
 const TEMPLATE = helpers.root('bin/templates/plugin-definitions.js.swig');
-const OUT = helpers.root('resource/js/plugins/plugin-definitions.js');
+const OUT = helpers.root('tmp/plugins/plugin-definitions.js');
 
 const PluginUtils = require('../lib/plugins/plugin-utils');
 const pluginUtils = new PluginUtils();

+ 1 - 1
bin/templates/plugin-definitions.js.swig

@@ -2,7 +2,7 @@
  * !! don't commit this file !!
  * !!      just revert       !!
  */
-export const definitions = [
+module.exports = [
   {% for definition in definitions %}{
     name: '{{ definition.name }}',
     meta: require('{{ definition.name }}'),

+ 2 - 1
package.json

@@ -107,6 +107,7 @@
     "css-loader": "^0.27.1",
     "easy-livereload": "^1.2.0",
     "express-webpack-assets": "0.0.2",
+    "mkdirp": "^0.5.1",
     "mocha": "~2.2.0",
     "node-dev": "^3.1.3",
     "optimize-js-plugin": "0.0.4",
@@ -133,7 +134,7 @@
     "clean:public": "npm run rimraf -- public/js",
     "clean:dll": "npm run rimraf -- dll",
     "clean": "npm cache clean && npm run rimraf -- public/js dll",
-    "generate-plugin-definitions-source": "node bin/generate-plugin-definitions-source.js",
+    "generate-plugin-definitions-source": "mkdirp tmp/plugins && node bin/generate-plugin-definitions-source.js",
     "prebuild:dev": "npm run generate-plugin-definitions-source",
     "prebuild:prod": "npm run generate-plugin-definitions-source",
     "prestart": "npm run build:prod",

+ 11 - 2
resource/js/plugin.js

@@ -1,5 +1,3 @@
-import { definitions } from './plugins/plugin-definitions';
-
 export default class CrowiPlugin {
 
   /**
@@ -11,6 +9,17 @@ export default class CrowiPlugin {
    * @memberof CrowiPlugin
    */
   installAll(crowi, crowiRenderer) {
+    // import plugin definitions
+    let definitions = [];
+    try {
+      definitions = require('../../tmp/plugins/plugin-definitions');
+    }
+    catch(e) {
+      // TODO show warning
+      // do nothing
+      return;
+    }
+
     definitions.forEach((definition) => {
       const meta = definition.meta;
       const entries = definition.entries;

+ 0 - 3
resource/js/plugins/plugin-definitions.js

@@ -1,3 +0,0 @@
-export const definitions = [
-  // plugin definitions will be generated by /bin/generate-plugin-definitions-source.js
-]