瀏覽代碼

Добавлен универсальный includer для включения файлов в исходник

Book Pauk 5 年之前
父節點
當前提交
13efd50d80
共有 2 個文件被更改,包括 25 次插入0 次删除
  1. 20 0
      build/includer.js
  2. 5 0
      build/webpack.base.config.js

+ 20 - 0
build/includer.js

@@ -0,0 +1,20 @@
+const path = require('path');
+const fs = require('fs');
+
+exports.default = function includer(source) {
+    const lines = source.split('\n');
+
+    let result = [];
+    for (const line of lines) {
+        const trimmed = line.trim();
+        const m = trimmed.match(/^@@[\s]*?include[\s]*?\(['"](.*)['"]\)/);
+        if (m) {
+            const includedFile = path.resolve(path.dirname(this.resourcePath), m[1]);
+            const fileContent = fs.readFileSync(includedFile, 'utf8');
+            result.push(fileContent);
+        } else {
+            result.push(line);
+        }
+    }
+    return result.join('\n');
+}

+ 5 - 0
build/webpack.base.config.js

@@ -16,6 +16,11 @@ module.exports = {
                 test: /\.vue$/,
                 loader: "vue-loader"
             },
+            {
+                test: /\.includer$/,
+                resourceQuery: /^\?vue/,
+                use: path.resolve('build/includer.js')
+            },
             {
                 test: /\.js$/,
                 loader: 'babel-loader',