Przeglądaj źródła

impl plugin v2

* move plugin.js to under resources dir
Yuki Takei 9 lat temu
rodzic
commit
91cf15c53d
5 zmienionych plików z 36 dodań i 59 usunięć
  1. 0 10
      plugin/package.json
  2. 0 41
      plugin/plugin.js
  3. 1 1
      resource/js/app.js
  4. 27 0
      resource/js/plugin.js
  5. 8 7
      webpack.plugin.config.js

+ 0 - 10
plugin/package.json

@@ -1,10 +0,0 @@
-{
-  "name": "crowi-plugin",
-  "version": "1.0.0",
-  "description": "",
-  "main": "plugin.js",
-  "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
-  },
-  "license": "MIT"
-}

+ 0 - 41
plugin/plugin.js

@@ -1,41 +0,0 @@
-const plugins = [
-  // require('crowi-plugin-...')
-]
-
-// import all plugins
-var pluginMetaDatas = [];
-plugins.forEach((plugin) => {
-  pluginMetaDatas.push(plugin.meta);
-})
-
-export default class CrowiPlugin {
-
-  /**
-   * plug-in PreProcessors
-   * 
-   * @param {Crowi} crowi
-   * @param {CrowiRenderer} crowiRenderer
-   * 
-   * @memberof CrowiPlugin
-   */
-  pluginPreProcessors(crowi, crowiRenderer) {
-    var additionalPreProcessors = [];
-
-    pluginMetaDatas.forEach((meta) => {
-      // v1
-      if (meta.pluginSchemaVersion === 1) {
-        meta.preProcessorFactories.forEach((f) => {
-          // instanciate PreProcessor
-          var preProcessor = f(crowi);
-          additionalPreProcessors.push(preProcessor);
-        })
-      }
-    });
-
-    crowiRenderer.preProcessors = crowiRenderer.preProcessors.concat(
-        crowiRenderer.preProcessors, additionalPreProcessors);
-  }
-
-}
-
-window.crowiPlugin = new CrowiPlugin();     // FIXME

+ 1 - 1
resource/js/app.js

@@ -33,7 +33,7 @@ window.crowiRenderer = crowiRenderer;
 var isEnabledPlugins = $('body').data('plugin-enabled');
 if (isEnabledPlugins) {
   var crowiPlugin = window.crowiPlugin;
-  crowiPlugin.pluginPreProcessors(crowi, crowiRenderer);
+  crowiPlugin.installAll(crowi, crowiRenderer);
 }
   
 const componentMappings = {

+ 27 - 0
resource/js/plugin.js

@@ -0,0 +1,27 @@
+const plugins = [
+  // require('crowi-plugin-...'),
+]
+
+const pluginEntries = [
+  // require('crowi-plugin-.../lib/client-entry'),
+];
+
+export default class CrowiPlugin {
+
+  /**
+   * process plugin entry
+   * 
+   * @param {Crowi} crowi
+   * @param {CrowiRenderer} crowiRenderer
+   * 
+   * @memberof CrowiPlugin
+   */
+  installAll(crowi, crowiRenderer) {
+    pluginEntries.forEach((entry) => {
+      entry(crowi, crowiRenderer);
+    });
+  }
+
+}
+
+window.crowiPlugin = new CrowiPlugin();     // FIXME

+ 8 - 7
webpack.plugin.config.js

@@ -1,18 +1,19 @@
 var path = require('path');
 var webpack = require('webpack');
+var UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin');
 
 var ManifestPlugin = require('webpack-manifest-plugin');
 
 var config = {
   entry: {
-    plugin: './plugin/plugin.js',
+    plugin: './resource/js/plugin.js',
   },
   output: {
     path: path.join(__dirname + "/public/js"),
     filename: "[name].[hash].js"
   },
   resolve: {
-    modulesDirectories: [
+    modules: [
       './node_modules', './plugin/node_modules',
     ],
   },
@@ -20,10 +21,10 @@ var config = {
     loaders: [
       {
         test: /.jsx?$/,
-        loader: 'babel-loader',
-        query: {
-          presets: ['es2015', 'react']
-        }
+        exclude: /node_modules/,
+        use: [{
+          loader: 'babel-loader',
+        }]
       }
     ]
   },
@@ -37,7 +38,7 @@ if (process.env && process.env.NODE_ENV !== 'development') {
         'NODE_ENV': JSON.stringify('production')
       }
     }),
-    new webpack.optimize.UglifyJsPlugin({
+    new UglifyJsPlugin({
       compress:{
         warnings: false
       }