Добавлен универсальный includer для включения файлов в исходник
This commit is contained in:
20
build/includer.js
Normal file
20
build/includer.js
Normal file
@@ -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');
|
||||||
|
}
|
||||||
@@ -16,6 +16,11 @@ module.exports = {
|
|||||||
test: /\.vue$/,
|
test: /\.vue$/,
|
||||||
loader: "vue-loader"
|
loader: "vue-loader"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
test: /\.includer$/,
|
||||||
|
resourceQuery: /^\?vue/,
|
||||||
|
use: path.resolve('build/includer.js')
|
||||||
|
},
|
||||||
{
|
{
|
||||||
test: /\.js$/,
|
test: /\.js$/,
|
||||||
loader: 'babel-loader',
|
loader: 'babel-loader',
|
||||||
|
|||||||
Reference in New Issue
Block a user