
Security News
GitHub Actions Pricing Whiplash: Self-Hosted Actions Billing Change Postponed
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.
vue-template-compiler
Advanced tools
This package is auto-generated. For pull requests please see src/platforms/web/entry-compiler.js.
This package can be used to pre-compile Vue 2.0 templates into render functions to avoid runtime-compilation overhead and CSP restrictions. In most cases you should be using it with vue-loader, you will only need it separately if you are writing build tools with very specific needs.
npm install vue-template-compiler
const compiler = require('vue-template-compiler')
Compiles a template string and returns compiled JavaScript code. The returned result is an object of the following format:
{
ast: ?ASTElement, // parsed template elements to AST
render: string, // main render function code
staticRenderFns: Array<string>, // render code for static sub trees, if any
errors: Array<string> // template syntax errors, if any
}
Note the returned function code uses with and thus cannot be used in strict mode code.
outputSourceRange new in 2.6
booleanfalseSet this to true will cause the errors returned in the compiled result become objects in the form of { msg, start, end }. The start and end properties are numbers that mark the code range of the error source in the template. This can be passed on to the compiler.generateCodeFrame API to generate a code frame for the error.
whitespace
string'preserve' | 'condense''preserve'The default value 'preserve' handles whitespaces as follows:
If set to 'condense':
Using condense mode will result in smaller compiled code size and slightly improved performance. However, it will produce minor visual layout differences compared to plain HTML in certain cases.
This option does not affect the <pre> tag.
Example:
<!-- source -->
<div>
<span>
foo
</span> <span>bar</span>
</div>
<!-- whitespace: 'preserve' -->
<div> <span>
foo
</span> <span>bar</span> </div>
<!-- whitespace: 'condense' -->
<div><span> foo </span> <span>bar</span></div>
modules
It's possible to hook into the compilation process to support custom template features. However, beware that by injecting custom compile-time modules, your templates will not work with other build tools built on standard built-in modules, e.g vue-loader and vueify.
An array of compiler modules. For details on compiler modules, refer to the ModuleOptions type in flow declarations and the built-in modules.
directives
An object where the key is the directive name and the value is a function that transforms an template AST node. For example:
compiler.compile('<div v-test></div>', {
directives: {
test (node, directiveMeta) {
// transform node based on directiveMeta
}
}
})
By default, a compile-time directive will extract the directive and the directive will not be present at runtime. If you want the directive to also be handled by a runtime definition, return true in the transform function.
Refer to the implementation of some built-in compile-time directives.
preserveWhitespace Deprecated since 2.6
booleantrueBy default, the compiled render function preserves all whitespace characters between HTML tags. If set to false, whitespace between tags will be ignored. This can result in slightly better performance but may affect layout for inline elements.
Similar to compiler.compile, but directly returns instantiated functions:
{
render: Function,
staticRenderFns: Array<Function>
}
This is only useful at runtime with pre-configured builds, so it doesn't accept any compile-time options. In addition, this method uses new Function() so it is not CSP-compliant.
2.4.0+
Same as compiler.compile but generates SSR-specific render function code by optimizing parts of the template into string concatenation in order to improve SSR performance.
This is used by default in vue-loader@>=12 and can be disabled using the optimizeSSR option.
2.4.0+
Same as compiler.compileToFunction but generates SSR-specific render function code by optimizing parts of the template into string concatenation in order to improve SSR performance.
Parse a SFC (single-file component, or *.vue file) into a descriptor (refer to the SFCDescriptor type in flow declarations). This is used in SFC build tools like vue-loader and vueify.
Generate a code frame that highlights the part in template defined by start and end. Useful for error reporting in higher-level tooling.
padpad is useful when you are piping the extracted content into other pre-processors, as you will get correct line numbers or character indices if there are any syntax errors.
{ pad: "line" }, the extracted content for each block will be prefixed with one newline for each line in the leading content from the original file to ensure that the line numbers align with the original file.{ pad: "space" }, the extracted content for each block will be prefixed with one space for each character in the leading content from the original file to ensure that the character count remains the same as the original file.This package is a Babel plugin that allows you to use JSX with Vue.js components. It provides an alternative to using the Vue template syntax and offers a different developer experience compared to vue-template-compiler.
Vue-loader is a Webpack loader that allows you to write Vue components in a format called Single-File Components (SFCs). It uses vue-template-compiler under the hood to compile templates but provides additional functionalities like hot-reloading and CSS extraction.
Preact is a fast 3kB alternative to React with the same modern API. While not directly similar to vue-template-compiler, it serves a similar purpose for the Preact ecosystem, allowing developers to compile JSX into render functions.
FAQs
template compiler for Vue 2.0
The npm package vue-template-compiler receives a total of 622,323 weekly downloads. As such, vue-template-compiler popularity was classified as popular.
We found that vue-template-compiler demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.