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

During the experiment of live-reload

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

+ 1 - 0
config/webpack.common.js

@@ -71,6 +71,7 @@ module.exports = function (options) {
 
       new CommonsChunkPlugin({
         name: 'commons',
+        chunks: ['app', 'legacy', 'legacy-form', 'legacy-admin', 'legacy-presentation'],
         minChunks: module => /node_modules/.test(module.resource),
       }),
 

+ 4 - 0
config/webpack.dev.js

@@ -29,6 +29,9 @@ const HMR = helpers.hasProcessFlag('hot');
 module.exports = function (options) {
   return webpackMerge(commonConfig({ env: ENV }), {
     devtool: 'cheap-module-source-map',
+    entry: {
+      dev: './resource/js/dev',
+    },
     output: {
       path: helpers.root('public/js'),
       publicPath: "/js/",
@@ -54,6 +57,7 @@ module.exports = function (options) {
       ],
     },
     plugins: [
+
       new DllBundlesPlugin({
         bundles: {
           vendor: [

+ 16 - 1
lib/crowi/index.js

@@ -287,15 +287,30 @@ Crowi.prototype.getTokens = function() {
 Crowi.prototype.start = function() {
   var self = this
     , http = require('http')
+    , reload = require('reload')
+    , chokidar = require('chokidar')
     , server
     , io;
 
   return self.buildServer()
     .then(function(app) {
       server = http.createServer(app).listen(self.port, function() {
-        console.log('[' + self.node_env + '] Express server listening on port ' + self.port);
+        console.log(`[${self.node_env}] Express server listening on port ${self.port}`);
       });
 
+      // reload settings
+      // see: https://github.com/jprichardson/reload
+      // if (self.node_env === 'development') {
+      //   const reloadServer = reload(server, app);
+      //   // fire reload() when html is modified
+      //   const watcher = chokidar.watch(path.join(self.libDir, 'views'));
+      //   watcher.on('all', (event, path) => {
+      //     reloadServer.reload();
+      //   });
+
+      //   debug(`watching for live-reloading -> ${self.libDir}`);
+      // }
+
       io = require('socket.io')(server);
       io.sockets.on('connection', function (socket) {
       });

+ 1 - 1
lib/views/_form.html

@@ -61,4 +61,4 @@
   <div class="file-module hidden">
   </div>
 </div>
-<script src="{{ webpack_asset('legacy-form').js }}"></script>
+<script src="{{ webpack_asset('legacy-form').js }}" defer></script>

+ 4 - 5
lib/views/layout/layout.html

@@ -23,15 +23,14 @@
   <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
 
   {% if env === 'development' %}
-    <script src="/js/dll/vendor.dll.js"></script>
-    <script src="{{ webpack_asset('commons').js }}"></script>
     <script src="{{ webpack_asset('style').js }}"></script>
-  {% else %}
-    <script src="{{ webpack_asset('commons').js }}" async defer></script>
+    <!--<script src="{{ webpack_asset('dev').js }}" async></script>-->
+    <script src="/js/dll/vendor.dll.js" defer></script>
   {% endif %}
 
+  <script src="{{ webpack_asset('commons').js }}" defer></script>
   {% if config.crowi['plugin:isEnabledPlugins'] %}
-    <script src="{{ webpack_asset('plugin').js }}" async defer></script>
+    <script src="{{ webpack_asset('plugin').js }}" defer></script>
   {% endif %}
   <script src="{{ webpack_asset('legacy').js }}" defer></script>
   <script src="{{ webpack_asset('app').js }}" defer></script>

+ 3 - 4
lib/views/page_presentation.html

@@ -11,13 +11,12 @@
     <link rel="stylesheet" type="text/css" href="/js/reveal/lib/css/zenburn.css">
 
     {% if env === 'development' %}
-      <script src="/js/dll/vendor.dll.js"></script>
-      <script src="{{ webpack_asset('commons').js }}"></script>
       <script src="{{ webpack_asset('style').js }}"></script>
-    {% else %}
-      <script src="{{ webpack_asset('commons').js }}" async defer></script>
+      <!--<script src="{{ webpack_asset('dev').js }}" async></script>-->
+      <script src="/js/dll/vendor.dll.js" defer></script>
     {% endif %}
 
+    <script src="{{ webpack_asset('commons').js }}" defer></script>
     <script src="{{ webpack_asset('presentation').js }}" defer></script>
 
     <title>{{ path|path2name }} | {{ path }}</title>

+ 4 - 0
package.json

@@ -128,6 +128,10 @@
     "clean": "npm cache clean && npm run rimraf -- dist dll",
     "nodemon": "nodemon",
     "rimraf": "rimraf",
+    "server:dev": "nodemon --watch lib --watch public/js app.js",
+    "server": "npm run server:dev",
+    "start:dev": "npm run server",
+    "start": "npm run server:prod",
     "test": "",
     "webpack": "webpack",
     "webpack:plugin": "webpack --config webpack.plugin.config.js"

+ 4 - 0
resource/js/dev.js

@@ -0,0 +1,4 @@
+/**
+ * dev tools
+ */
+import 'reload/lib/reload-client';