Ich möchte Inline-js in meinen less-Dateien verwenden, erhalte jedoch die folgende Meldung:
Inline-JavaScript ist nicht aktiviert. Ist es in Ihren Optionen festgelegt?
Wie kann ich das aktivieren?
Ich hatte das gleiche Problem, ich benutze Webpack mit weniger Loader, ich musste die Javascript-Option in der Less Loader-Konfiguration hinzufügen:
{
test: /\.less$/,
use: [{
loader: "style-loader"
}, {
loader: "css-loader"
}, {
loader: "less-loader",
options: {
javascriptEnabled: true
}
}]
}
Ich habe im Quellcode von weniger Compiler gefunden: https://github.com/less/less.js/blob/3.x/bin/lessc
dass sie js weniger Option auf diese Weise parsen:
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;
Daher sollten Sie wahrscheinlich '--js' in einer statischen Kompilierung (Befehlszeile) oder 'javascriptEnabled: true' in einer dynamischen Kompilierung (wie dem Webpack Loader) verwenden, um Javascript zu aktivieren.
Ja zu allem, was @ matthew-dean und @ davide-carpini gesagt haben ... aber für alle, die nach dem Code-Schnipsel von Grunt-LESS suchen, geht es hier:
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'
}
}
},
dies funktioniert bei meiner Implementierung mit "grunt-contrib-less": "^2.0.0"
... Ihre Laufleistung kann variieren
Inline-JavaScript wurde aus Sicherheitsgründen standardmäßig deaktiviert. Was passiert ist, ist, dass Online-Generatoren manchmal die Konfiguration von Weniger-Variablen zulassen, die sie dann direkt interpretieren.
Dies war anfällig für Code-Injection, was bedeutet, dass JavaScript in ein Less-Stylesheet eingefügt werden konnte, das direkt auf einem Server ausgeführt wurde.
Aus diesem Grund wurde Inline-JavaScript nicht mehr verwendet (standardmäßig in 3.x auf "false" gesetzt), und die Ersetzung hierfür ist die @plugin
-Syntax und die Verwendung eines geeigneten JS-Plugins. - (Siehe: http://lesscss.org/features/#plugin-atrules-feature )
Ja, Sie können die Kompilierungsoptionen weiterhin auf javascriptEnabled: true
setzen. Dies ist jedoch keine bewährte Methode für Stylesheets. Im Allgemeinen sollte Ihr Stylesheet kein JS enthalten. Es ist besser, ein Plugin zu verwenden.
Ich habe dieses Problem mit der neuesten Version von less bekommen. Dann bin ich auf Version 2.7 umgestiegen und hatte es behoben.