我想在我的较少文件中使用内联js,但我收到以下消息:
内联JavaScript未启用。它是否设置在您的选项中?
我怎样才能启用它?
我有同样的问题,我使用webpack少加载器,我需要在较少的加载器配置中添加javascript选项:
{
test: /\.less$/,
use: [{
loader: "style-loader"
}, {
loader: "css-loader"
}, {
loader: "less-loader",
options: {
javascriptEnabled: true
}
}]
}
我在源代码中找到了较少的编译器:qazxsw poi
他们以这种方式解析js less选项:
https://github.com/less/less.js/blob/3.x/bin/lessc
所以你应该在动态编译(如webpack loader)中使用静态编译(命令行)中的'--js'或'javascriptEnabled:true'来启用javascript。
使用最新版本的less时遇到了这个问题。然后我切换到2.7版本,我修复了它。
出于安全考虑,默认情况下禁用内联JavaScript。发生的事情是,在线生成器有时会允许配置Less变量然后直接解释。
这很容易受到代码注入的影响,这意味着可以将JavaScript注入到直接在服务器上运行的Less样式表中。
出于这个原因,内联JavaScript已被弃用(默认情况下在3.x中设置为false),并且替换为 case 'js':
options.javascriptEnabled = true;
break;
case 'no-js':
console.error('The "--no-js" argument is deprecated, as inline JavaScript ' +
'is disabled by default. Use "--js" to enable inline JavaScript (not recommended).');
break;
语法并使用正确的JS插件。 - (见:@plugin
)
是的,您仍然可以将编辑选项设置为http://lesscss.org/features/#plugin-atrules-feature,但这不是样式表的最佳实践。通常,您的样式表中不应包含JS。最好使用一个插件。
是的,@ matthew-dean和@ davide-carpini所说的一切......但对于那些寻找Grunt-LESS代码片段的人来说,你去:
javascriptEnabled: true
这对我使用 less: {
dev: {
options: {
paths: ['Content/less'],
plugins: [
new(require('less-plugin-autoprefix'))({
browsers: ['last 2 versions']
}),
new(require('less-plugin-clean-css'))({
sourceMap: true,
advanced: true
})
],
relativeUrls: true,
javascriptEnabled: true
},
files: {
'Content/less/site.css': 'Content/less/site.less'
}
}
},
的实施工作...你的里程可能会有所不同