vue-loader
Advanced tools
Comparing version 15.10.0-beta.1 to 15.10.0-beta.2
module.exports = { | ||
root: true, | ||
extends: ['plugin:vue-libs/recommended'] | ||
extends: ['plugin:vue-libs/recommended'], | ||
rules: { | ||
indent: 'off', | ||
'space-before-function-paren': 'off' | ||
} | ||
} |
@@ -1,3 +0,3 @@ | ||
<a name="15.10.0-beta.1"></a> | ||
# [15.10.0-beta.1](https://github.com/vuejs/vue-loader/compare/v15.9.8...v15.10.0-beta.1) (2022-06-14) | ||
<a name="15.10.0-beta.2"></a> | ||
# [15.10.0-beta.2](https://github.com/vuejs/vue-loader/compare/v15.10.0-beta.1...v15.10.0-beta.2) (2022-06-16) | ||
@@ -7,14 +7,14 @@ | ||
* apply js loaders to compiled template code when used with 2.7 ([30464a8](https://github.com/vuejs/vue-loader/commit/30464a8)) | ||
* compat for vue 2.7, support `<script setup>` ([308715a](https://github.com/vuejs/vue-loader/commit/308715a)) | ||
* use script-analyzed bindings when compiling template ([55de28c](https://github.com/vuejs/vue-loader/commit/55de28c)) | ||
<a name="15.9.8"></a> | ||
## [15.9.8](https://github.com/vuejs/vue-loader/compare/v15.9.7...v15.9.8) (2021-08-02) | ||
<a name="15.10.0-beta.1"></a> | ||
# [15.10.0-beta.1](https://github.com/vuejs/vue-loader/compare/v15.9.8...v15.10.0-beta.1) (2022-06-14) | ||
### Bug Fixes | ||
### Features | ||
* fix webpack 5.48 compatibility ([c4c5f17](https://github.com/vuejs/vue-loader/commit/c4c5f17)), closes [#1859](https://github.com/vuejs/vue-loader/issues/1859) | ||
* apply js loaders to compiled template code when used with 2.7 ([30464a8](https://github.com/vuejs/vue-loader/commit/30464a8)) | ||
* compat for vue 2.7, support `<script setup>` ([308715a](https://github.com/vuejs/vue-loader/commit/308715a)) | ||
@@ -21,0 +21,0 @@ |
const qs = require('querystring') | ||
const { attrsToQuery } = require('./utils') | ||
module.exports = function genCustomBlocksCode ( | ||
module.exports = function genCustomBlocksCode( | ||
blocks, | ||
@@ -10,13 +10,23 @@ resourcePath, | ||
) { | ||
return `\n/* custom blocks */\n` + blocks.map((block, i) => { | ||
const src = block.attrs.src || resourcePath | ||
const attrsQuery = attrsToQuery(block.attrs) | ||
const issuerQuery = block.attrs.src ? `&issuerPath=${qs.escape(resourcePath)}` : '' | ||
const inheritQuery = resourceQuery ? `&${resourceQuery.slice(1)}` : '' | ||
const query = `?vue&type=custom&index=${i}&blockType=${qs.escape(block.type)}${issuerQuery}${attrsQuery}${inheritQuery}` | ||
return ( | ||
`import block${i} from ${stringifyRequest(src + query)}\n` + | ||
`if (typeof block${i} === 'function') block${i}(component)` | ||
) | ||
}).join(`\n`) + `\n` | ||
return ( | ||
`\n/* custom blocks */\n` + | ||
blocks | ||
.map((block, i) => { | ||
const src = block.attrs.src || resourcePath | ||
const attrsQuery = attrsToQuery(block.attrs) | ||
const issuerQuery = block.attrs.src | ||
? `&issuerPath=${qs.escape(resourcePath)}` | ||
: '' | ||
const inheritQuery = resourceQuery ? `&${resourceQuery.slice(1)}` : '' | ||
const query = `?vue&type=custom&index=${i}&blockType=${qs.escape( | ||
block.type | ||
)}${issuerQuery}${attrsQuery}${inheritQuery}` | ||
return ( | ||
`import block${i} from ${stringifyRequest(src + query)}\n` + | ||
`if (typeof block${i} === 'function') block${i}(component)` | ||
) | ||
}) | ||
.join(`\n`) + | ||
`\n` | ||
) | ||
} |
@@ -5,3 +5,3 @@ const { attrsToQuery } = require('./utils') | ||
module.exports = function genStyleInjectionCode ( | ||
module.exports = function genStyleInjectionCode( | ||
loaderContext, | ||
@@ -22,3 +22,3 @@ styles, | ||
function genStyleRequest (style, i) { | ||
function genStyleRequest(style, i) { | ||
const src = style.src || resourcePath | ||
@@ -34,3 +34,3 @@ const attrsQuery = attrsToQuery(style.attrs, 'css') | ||
function genCSSModulesCode (style, request, i) { | ||
function genCSSModulesCode(style, request, i) { | ||
hasCSSModules = true | ||
@@ -77,3 +77,4 @@ | ||
// empty styles: with no `src` specified or only contains whitespaces | ||
const isNotEmptyStyle = style => style.src || nonWhitespaceRE.test(style.content) | ||
const isNotEmptyStyle = (style) => | ||
style.src || nonWhitespaceRE.test(style.content) | ||
// explicit injection is needed in SSR (for critical CSS collection) | ||
@@ -96,6 +97,5 @@ // or in Shadow Mode (for injection into shadow root) | ||
const request = genStyleRequest(style, i) | ||
styleInjectionCode += ( | ||
styleInjectionCode += | ||
`var style${i} = require(${request})\n` + | ||
`if (style${i}.__inject__) style${i}.__inject__(context)\n` | ||
) | ||
if (style.module) genCSSModulesCode(style, request, i) | ||
@@ -120,7 +120,11 @@ } | ||
${needsHotReload ? ` | ||
${ | ||
needsHotReload | ||
? ` | ||
module.hot && module.hot.dispose(function (data) { | ||
disposed = true | ||
}) | ||
` : ``} | ||
` | ||
: `` | ||
} | ||
@@ -127,0 +131,0 @@ ${cssModulesHotReloadCode} |
@@ -5,8 +5,3 @@ const qs = require('querystring') | ||
// if the user happen to add them as attrs | ||
const ignoreList = [ | ||
'id', | ||
'index', | ||
'src', | ||
'type' | ||
] | ||
const ignoreList = ['id', 'index', 'src', 'type'] | ||
@@ -13,0 +8,0 @@ // transform the attrs on a SFC block descriptor into a resourceQuery string |
@@ -29,3 +29,3 @@ // resolve compilers to use. | ||
function loadFromContext (path, ctx) { | ||
function loadFromContext(path, ctx) { | ||
return require(require.resolve(path, { | ||
@@ -36,3 +36,3 @@ paths: [ctx] | ||
function loadTemplateCompiler (ctx, loaderContext) { | ||
function loadTemplateCompiler(ctx, loaderContext) { | ||
try { | ||
@@ -39,0 +39,0 @@ return loadFromContext('vue-template-compiler', ctx) |
@@ -14,2 +14,3 @@ const path = require('path') | ||
const { resolveCompiler } = require('./compiler') | ||
const { setDescriptor } = require('./descriptorCache') | ||
@@ -31,3 +32,3 @@ let errorEmitted = false | ||
const stringifyRequest = r => loaderUtils.stringifyRequest(loaderContext, r) | ||
const stringifyRequest = (r) => loaderUtils.stringifyRequest(loaderContext, r) | ||
@@ -57,6 +58,3 @@ const { | ||
const { compiler, templateCompiler } = resolveCompiler( | ||
rootContext, | ||
loaderContext | ||
) | ||
const { compiler, templateCompiler } = resolveCompiler(context, loaderContext) | ||
@@ -71,2 +69,5 @@ const descriptor = compiler.parse({ | ||
// cache descriptor | ||
setDescriptor(filename, descriptor) | ||
// if the query has a type field, this is a language block request | ||
@@ -99,3 +100,3 @@ // e.g. foo.vue?type=template&id=xxxxx | ||
// feature information | ||
const hasScoped = descriptor.styles.some(s => s.scoped) | ||
const hasScoped = descriptor.styles.some((s) => s.scoped) | ||
const hasFunctional = | ||
@@ -102,0 +103,0 @@ descriptor.template && descriptor.template.attrs.functional |
@@ -9,14 +9,14 @@ const qs = require('querystring') | ||
const isESLintLoader = l => /(\/|\\|@)eslint-loader/.test(l.path) | ||
const isNullLoader = l => /(\/|\\|@)null-loader/.test(l.path) | ||
const isCSSLoader = l => /(\/|\\|@)css-loader/.test(l.path) | ||
const isCacheLoader = l => /(\/|\\|@)cache-loader/.test(l.path) | ||
const isPitcher = l => l.path !== __filename | ||
const isPreLoader = l => !l.pitchExecuted | ||
const isPostLoader = l => l.pitchExecuted | ||
const isESLintLoader = (l) => /(\/|\\|@)eslint-loader/.test(l.path) | ||
const isNullLoader = (l) => /(\/|\\|@)null-loader/.test(l.path) | ||
const isCSSLoader = (l) => /(\/|\\|@)css-loader/.test(l.path) | ||
const isCacheLoader = (l) => /(\/|\\|@)cache-loader/.test(l.path) | ||
const isPitcher = (l) => l.path !== __filename | ||
const isPreLoader = (l) => !l.pitchExecuted | ||
const isPostLoader = (l) => l.pitchExecuted | ||
const dedupeESLintLoader = loaders => { | ||
const dedupeESLintLoader = (loaders) => { | ||
const res = [] | ||
let seen = false | ||
loaders.forEach(l => { | ||
loaders.forEach((l) => { | ||
if (!isESLintLoader(l)) { | ||
@@ -32,4 +32,4 @@ res.push(l) | ||
const shouldIgnoreCustomBlock = loaders => { | ||
const actualLoaders = loaders.filter(loader => { | ||
const shouldIgnoreCustomBlock = (loaders) => { | ||
const actualLoaders = loaders.filter((loader) => { | ||
// vue-loader | ||
@@ -50,3 +50,3 @@ if (loader.path === selfPath) { | ||
module.exports = code => code | ||
module.exports = (code) => code | ||
@@ -68,3 +68,3 @@ // This pitching loader is responsible for intercepting all vue block requests | ||
if (/\.vue$/.test(this.resourcePath)) { | ||
loaders = loaders.filter(l => !isESLintLoader(l)) | ||
loaders = loaders.filter((l) => !isESLintLoader(l)) | ||
} else { | ||
@@ -85,3 +85,3 @@ // This is a src import. Just make sure there's not more than 1 instance | ||
const genRequest = loaders => { | ||
const genRequest = (loaders) => { | ||
// Important: dedupe since both the original rule | ||
@@ -98,3 +98,3 @@ // and the cloned rule would match a source import request. | ||
loaders.forEach(loader => { | ||
loaders.forEach((loader) => { | ||
const identifier = | ||
@@ -142,13 +142,13 @@ typeof loader === 'string' ? loader : loader.path + loader.query | ||
? [ | ||
`${require.resolve('cache-loader')}?${JSON.stringify({ | ||
// For some reason, webpack fails to generate consistent hash if we | ||
// use absolute paths here, even though the path is only used in a | ||
// comment. For now we have to ensure cacheDirectory is a relative path. | ||
cacheDirectory: (path.isAbsolute(cacheDirectory) | ||
? path.relative(process.cwd(), cacheDirectory) | ||
: cacheDirectory | ||
).replace(/\\/g, '/'), | ||
cacheIdentifier: hash(cacheIdentifier) + '-vue-loader-template' | ||
})}` | ||
] | ||
`${require.resolve('cache-loader')}?${JSON.stringify({ | ||
// For some reason, webpack fails to generate consistent hash if we | ||
// use absolute paths here, even though the path is only used in a | ||
// comment. For now we have to ensure cacheDirectory is a relative path. | ||
cacheDirectory: (path.isAbsolute(cacheDirectory) | ||
? path.relative(process.cwd(), cacheDirectory) | ||
: cacheDirectory | ||
).replace(/\\/g, '/'), | ||
cacheIdentifier: hash(cacheIdentifier) + '-vue-loader-template' | ||
})}` | ||
] | ||
: [] | ||
@@ -155,0 +155,0 @@ |
const qs = require('querystring') | ||
const loaderUtils = require('loader-utils') | ||
const { resolveCompiler } = require('../compiler') | ||
const { getDescriptor } = require('../descriptorCache') | ||
const { resolveScript } = require('../resolveScript') | ||
@@ -10,2 +12,4 @@ // Loader that compiles raw template into JavaScript functions. | ||
const loaderContext = this | ||
const filename = this.resourcePath | ||
const ctx = this.rootContext | ||
const query = qs.parse(this.resourceQuery.slice(1)) | ||
@@ -36,7 +40,7 @@ | ||
const { compiler, templateCompiler } = resolveCompiler( | ||
loaderContext.rootContext, | ||
loaderContext | ||
) | ||
const { compiler, templateCompiler } = resolveCompiler(ctx, loaderContext) | ||
const descriptor = getDescriptor(filename, options, loaderContext) | ||
const script = resolveScript(descriptor, options, loaderContext) | ||
// for vue/compiler-sfc OR @vue/component-compiler-utils | ||
@@ -54,3 +58,4 @@ const finalOptions = { | ||
optimizeSSR: isServer && options.optimizeSSR !== false, | ||
prettify: options.prettify | ||
prettify: options.prettify, | ||
bindings: script ? script.bindings : undefined | ||
} | ||
@@ -62,3 +67,3 @@ | ||
if (compiled.tips && compiled.tips.length) { | ||
compiled.tips.forEach(tip => { | ||
compiled.tips.forEach((tip) => { | ||
loaderContext.emitWarning(typeof tip === 'object' ? tip.msg : tip) | ||
@@ -90,3 +95,3 @@ }) | ||
`\n Error compiling template:\n${pad(compiled.source)}\n` + | ||
compiled.errors.map(e => ` - ${e}`).join('\n') + | ||
compiled.errors.map((e) => ` - ${e}`).join('\n') + | ||
'\n' | ||
@@ -103,7 +108,7 @@ ) | ||
function pad (source) { | ||
function pad(source) { | ||
return source | ||
.split(/\r?\n/) | ||
.map(line => ` ${line}`) | ||
.map((line) => ` ${line}`) | ||
.join('\n') | ||
} |
@@ -9,9 +9,9 @@ const qs = require('querystring') | ||
class VueLoaderPlugin { | ||
apply (compiler) { | ||
apply(compiler) { | ||
// add NS marker so that the loader can detect and report missing plugin | ||
if (compiler.hooks) { | ||
// webpack 4 | ||
compiler.hooks.compilation.tap(id, compilation => { | ||
compiler.hooks.compilation.tap(id, (compilation) => { | ||
const normalModuleLoader = compilation.hooks.normalModuleLoader | ||
normalModuleLoader.tap(id, loaderContext => { | ||
normalModuleLoader.tap(id, (loaderContext) => { | ||
loaderContext[NS] = true | ||
@@ -22,4 +22,4 @@ }) | ||
// webpack < 4 | ||
compiler.plugin('compilation', compilation => { | ||
compilation.plugin('normal-module-loader', loaderContext => { | ||
compiler.plugin('compilation', (compilation) => { | ||
compilation.plugin('normal-module-loader', (loaderContext) => { | ||
loaderContext[NS] = true | ||
@@ -57,3 +57,3 @@ }) | ||
// get vue-loader options | ||
const vueLoaderUseIndex = vueUse.findIndex(u => { | ||
const vueLoaderUseIndex = vueUse.findIndex((u) => { | ||
return /^vue-loader|(\/|\\|@)vue-loader/.test(u.loader) | ||
@@ -78,3 +78,3 @@ }) | ||
// that targets the corresponding language blocks in *.vue files. | ||
const clonedRules = rules.filter(r => r !== vueRule).map(cloneRule) | ||
const clonedRules = rules.filter((r) => r !== vueRule).map(cloneRule) | ||
@@ -84,3 +84,3 @@ // rule for template compiler | ||
loader: require.resolve('./loaders/templateLoader'), | ||
resourceQuery: query => { | ||
resourceQuery: (query) => { | ||
const parsed = qs.parse(query.slice(1)) | ||
@@ -102,3 +102,3 @@ return parsed.vue != null && parsed.type === 'template' | ||
jsRulesForRenderFn = rules | ||
.filter(r => r !== vueRule && matchesJS(r)) | ||
.filter((r) => r !== vueRule && matchesJS(r)) | ||
.map(cloneRuleForRenderFn) | ||
@@ -111,3 +111,3 @@ } | ||
loader: require.resolve('./loaders/pitcher'), | ||
resourceQuery: query => { | ||
resourceQuery: (query) => { | ||
const parsed = qs.parse(query.slice(1)) | ||
@@ -133,3 +133,3 @@ return parsed.vue != null | ||
function createMatcher (fakeFile) { | ||
function createMatcher(fakeFile) { | ||
return (rule, i) => { | ||
@@ -144,3 +144,3 @@ // #1201 we need to skip the `include` check when locating the vue rule | ||
function cloneRule (rule) { | ||
function cloneRule(rule) { | ||
const { resource, resourceQuery } = rule | ||
@@ -155,3 +155,3 @@ // Assuming `test` and `resourceQuery` tests are executed in series and | ||
resource: { | ||
test: resource => { | ||
test: (resource) => { | ||
currentResource = resource | ||
@@ -161,3 +161,3 @@ return true | ||
}, | ||
resourceQuery: query => { | ||
resourceQuery: (query) => { | ||
const parsed = qs.parse(query.slice(1)) | ||
@@ -192,3 +192,3 @@ if (parsed.vue == null) { | ||
function cloneRuleForRenderFn (rule) { | ||
function cloneRuleForRenderFn(rule) { | ||
const resource = rule.resource | ||
@@ -199,7 +199,7 @@ const resourceQuery = rule.resourceQuery | ||
...rule, | ||
resource: resource => { | ||
resource: (resource) => { | ||
currentResource = resource | ||
return true | ||
}, | ||
resourceQuery: query => { | ||
resourceQuery: (query) => { | ||
const parsed = qs.parse(query.slice(1)) | ||
@@ -206,0 +206,0 @@ if (parsed.vue == null || parsed.type !== 'template') { |
@@ -46,3 +46,3 @@ const { resolveCompiler } = require('./compiler') | ||
class VueLoaderPlugin { | ||
apply (compiler) { | ||
apply(compiler) { | ||
const normalModule = compiler.webpack | ||
@@ -52,6 +52,6 @@ ? compiler.webpack.NormalModule | ||
// add NS marker so that the loader can detect and report missing plugin | ||
compiler.hooks.compilation.tap(id, compilation => { | ||
const normalModuleLoader = normalModule.getCompilationHooks(compilation) | ||
.loader | ||
normalModuleLoader.tap(id, loaderContext => { | ||
compiler.hooks.compilation.tap(id, (compilation) => { | ||
const normalModuleLoader = | ||
normalModule.getCompilationHooks(compilation).loader | ||
normalModuleLoader.tap(id, (loaderContext) => { | ||
loaderContext[NS] = true | ||
@@ -93,7 +93,7 @@ }) | ||
const vueUse = vueRules | ||
.filter(rule => rule.type === 'use') | ||
.map(rule => rule.value) | ||
.filter((rule) => rule.type === 'use') | ||
.map((rule) => rule.value) | ||
// get vue-loader options | ||
const vueLoaderUseIndex = vueUse.findIndex(u => { | ||
const vueLoaderUseIndex = vueUse.findIndex((u) => { | ||
return /^vue-loader|(\/|\\|@)vue-loader/.test(u.loader) | ||
@@ -120,4 +120,4 @@ }) | ||
const clonedRules = rules | ||
.filter(r => r !== rawVueRule) | ||
.map(rawRule => | ||
.filter((r) => r !== rawVueRule) | ||
.map((rawRule) => | ||
cloneRule(rawRule, refs, langBlockRuleCheck, langBlockRuleResource) | ||
@@ -134,3 +134,3 @@ ) | ||
loader: require.resolve('./loaders/templateLoader'), | ||
resourceQuery: query => { | ||
resourceQuery: (query) => { | ||
if (!query) { | ||
@@ -154,7 +154,7 @@ return false | ||
.filter( | ||
r => | ||
(r) => | ||
r !== rawVueRule && | ||
(match(r, 'test.js').length > 0 || match(r, 'test.ts').length > 0) | ||
) | ||
.map(rawRule => cloneRule(rawRule, refs, jsRuleCheck, jsRuleResource)) | ||
.map((rawRule) => cloneRule(rawRule, refs, jsRuleCheck, jsRuleResource)) | ||
} | ||
@@ -166,3 +166,3 @@ | ||
loader: require.resolve('./loaders/pitcher'), | ||
resourceQuery: query => { | ||
resourceQuery: (query) => { | ||
if (!query) { | ||
@@ -193,3 +193,3 @@ return false | ||
function match (rule, fakeFile) { | ||
function match(rule, fakeFile) { | ||
let ruleSet = matcherCache.get(rule) | ||
@@ -218,3 +218,3 @@ if (!ruleSet) { | ||
const jsRuleCheck = query => { | ||
const jsRuleCheck = (query) => { | ||
return query.type === 'template' | ||
@@ -228,3 +228,3 @@ } | ||
function cloneRule (rawRule, refs, ruleCheck, ruleResource) { | ||
function cloneRule(rawRule, refs, ruleCheck, ruleResource) { | ||
const compiledRule = ruleSetCompiler.compileRule( | ||
@@ -239,4 +239,4 @@ `clonedRuleSet-${++uid}`, | ||
const ruleUse = compiledRule.effects | ||
.filter(effect => effect.type === 'use') | ||
.map(effect => effect.value) | ||
.filter((effect) => effect.type === 'use') | ||
.map((effect) => effect.value) | ||
// fix conflict with config.loader and config.options when using config.use | ||
@@ -251,7 +251,7 @@ delete rawRule.loader | ||
...rawRule, | ||
resource: resources => { | ||
resource: (resources) => { | ||
currentResource = resources | ||
return true | ||
}, | ||
resourceQuery: query => { | ||
resourceQuery: (query) => { | ||
if (!query) { | ||
@@ -284,3 +284,3 @@ return false | ||
if (rawRule.rules) { | ||
res.rules = rawRule.rules.map(rule => | ||
res.rules = rawRule.rules.map((rule) => | ||
cloneRule(rule, refs, ruleCheck, ruleResource) | ||
@@ -291,3 +291,3 @@ ) | ||
if (rawRule.oneOf) { | ||
res.oneOf = rawRule.oneOf.map(rule => | ||
res.oneOf = rawRule.oneOf.map((rule) => | ||
cloneRule(rule, refs, ruleCheck, ruleResource) | ||
@@ -294,0 +294,0 @@ ) |
@@ -6,3 +6,3 @@ const { resolveCompiler } = require('./compiler') | ||
exports.resolveScript = function resolveScript ( | ||
exports.resolveScript = function resolveScript( | ||
descriptor, | ||
@@ -9,0 +9,0 @@ options, |
@@ -7,3 +7,3 @@ /* globals __VUE_SSR_CONTEXT__ */ | ||
export default function normalizeComponent ( | ||
export default function normalizeComponent( | ||
scriptExports, | ||
@@ -15,9 +15,8 @@ render, | ||
scopeId, | ||
moduleIdentifier, /* server only */ | ||
moduleIdentifier /* server only */, | ||
shadowMode /* vue-cli only */ | ||
) { | ||
// Vue.extend constructor export interop | ||
var options = typeof scriptExports === 'function' | ||
? scriptExports.options | ||
: scriptExports | ||
var options = | ||
typeof scriptExports === 'function' ? scriptExports.options : scriptExports | ||
@@ -42,3 +41,4 @@ // render functions | ||
var hook | ||
if (moduleIdentifier) { // server build | ||
if (moduleIdentifier) { | ||
// server build | ||
hook = function (context) { | ||
@@ -69,7 +69,7 @@ // 2.3 injection | ||
? function () { | ||
injectStyles.call( | ||
this, | ||
(options.functional ? this.parent : this).$root.$options.shadowRoot | ||
) | ||
} | ||
injectStyles.call( | ||
this, | ||
(options.functional ? this.parent : this).$root.$options.shadowRoot | ||
) | ||
} | ||
: injectStyles | ||
@@ -85,3 +85,3 @@ } | ||
var originalRender = options.render | ||
options.render = function renderWithStyleInjection (h, context) { | ||
options.render = function renderWithStyleInjection(h, context) { | ||
hook.call(context) | ||
@@ -93,5 +93,3 @@ return originalRender(h, context) | ||
var existing = options.beforeCreate | ||
options.beforeCreate = existing | ||
? [].concat(existing, hook) | ||
: [hook] | ||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook] | ||
} | ||
@@ -98,0 +96,0 @@ } |
const { resolveScript } = require('./resolveScript') | ||
module.exports = function selectBlock ( | ||
module.exports = function selectBlock( | ||
descriptor, | ||
@@ -5,0 +5,0 @@ options, |
{ | ||
"name": "vue-loader", | ||
"version": "15.10.0-beta.1", | ||
"version": "15.10.0-beta.2", | ||
"description": "Vue single-file component loader for Webpack", | ||
@@ -14,3 +14,3 @@ "main": "lib/index.js", | ||
"docs:build": "vuepress build docs", | ||
"prepublishOnly": "conventional-changelog -p angular -r 2 -i CHANGELOG.md -s" | ||
"prepublishOnly": "conventional-changelog -p angular -r 1 -i CHANGELOG.md -s" | ||
}, | ||
@@ -17,0 +17,0 @@ "author": "Evan You", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
507869
24
1388
6