1.1.2 • Published 5 years ago

gulp-imu-importer v1.1.2

Weekly downloads
1
License
CC0-1.0
Repository
github
Last release
5 years ago

gulp-imu-importer

@import files, SVGs and Vue templates.

Install

npm install --save-dev gulp-imu-importer

Usage

JavaScript API

import() takes an options object as its only argument. The object has the following format:

{
    paths: ["src/example", "src/elsewhere", ...],
    extensions: {
        imports: [".ext", ".ext2", ...],
        scripts: [".ext", ".ext2", ...],
        svgs: [".ext", ".ext2", ...],
        vues: [".ext", ".ext2", ...]
    }
}

It defaults to:

{
    paths: "",
    extensions: {
        imports: [".html", ".js", ".json"],
        scripts: [".js", ".json"],
        svgs: [".svg"],
        vues: [".html"]
    }
}

paths is string or array of strings, each pointing to an additional path to search when processing @tags. By default no additional paths are searched, only the project root and paths relative to each importing file.

extensions is an object containing keys controlling the file extensions searched for by the @import, @script, @svg and @vue directives. Extensions will be searched for in the order provided, with the first match being the selected file.

Input

The @import directive must be enclosed in a comment tag. The path provided should be relative to the current file path. This will copy the contents of the file into its place place.

A @script directive has also been included, which behaves the same as @import but will wrap the results in <script type="x/templates"> tags. An ID based upon the filename is included in these tags. As such, filenames must consist only of valid ID characters and should not contain spaces.

Main

<div>
  <!-- @import "./local/project/file.html" //-->
</div>

./local/project/file.html

  <p>!!!</p>

Gulpfile.js

const gulp = require('gulp')
const import = require('gulp-imu-importer')

gulp.task('imaple', () => {
  return gulp.src('src/main.html')
    .pipe(import())
    .pipe(gulp.dest('build/'))
})

Result

<div>
  <p>!!!</p>
</div>

SVG

An @svg directive has also been provided. It is used just like @import and @script.

SVG files imported will first be parsed and processed to add an ID based upon the filename, sans extension. The same restrictions on naming that apply to @script also apply here.

Furthermore, the fill attribute is set to 'inherit' and any height or width attribute is removed prior to inlining.

Vue

A @vue directive is included, which works like @script except that the contents of the imported file will be run through the Vue.js compiler and the results written as a serialized object inside the <script> tags.

This does NOT support single-file components using the .vue extension.

SQL

An equivalent of @import has been added for MySQL and is used much the same.

# @import "./local/table/name"

You will need to provide the SQL extension to the importer:

    extensions: {imports: [".sql"]}

License

Dual-Licensed. Pick one. Pick both. Pick carefully.

gulp-imu-importer is available as Jollo LNT or CC0 | Public Domain, as you desire. Either way, you may make full use of the following files for any reason, without attribution should you wish to leave no trace:

  • .eslintrc.json
  • LICENSE
  • README.md
  • index.js
  • package.json
  • package-lock.json