web-dev-qa-db-fra.com

Activer le javascript en ligne dans MOINS

Je voudrais utiliser inline js dans mes fichiers moins mais je reçois le message suivant:

Le JavaScript en ligne n'est pas activé. Est-ce défini dans vos options?

Comment puis-je activer cela?

12
captainbudapest

J'ai eu le même problème, j'utilise Webpack avec moins de chargeur, je devais ajouter une option javascript dans moins de configuration du chargeur:

{
        test: /\.less$/,
        use: [{
            loader: "style-loader"
        }, {
            loader: "css-loader"
        }, {
            loader: "less-loader",
            options: {
                javascriptEnabled: true
            }
        }]
}

J'ai trouvé dans le code source de moins compilateur: https://github.com/less/less.js/blob/3.x/bin/lessc

qu'ils analysent js moins d'option de cette manière:

        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;

Donc, vous devriez probablement utiliser '--js' dans une compilation statique (ligne de commande) ou 'javascriptEnabled: true' dans une compilation dynamique (comme le chargeur Webpack) pour activer javascript.

28
Davide Carpini

Oui à tout ce que @ matthew-dean et @ davide-carpini ont dit ...

  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'
          }
      }
  },

cela fonctionne pour mon implémentation en utilisant "grunt-contrib-less": "^2.0.0" ... votre kilométrage peut varier

1
rwcorbett

Le JavaScript intégré a été désactivé par défaut pour des raisons de sécurité. Ce qui se passait, c'est que les générateurs en ligne permettaient parfois la configuration de variables Less qu'ils interprétaient ensuite directement.

Cela était vulnérable à l'injection de code, ce qui signifie que JavaScript pouvait être injecté dans une feuille de style Less s'exécutant directement sur un serveur.

Pour cette raison, le code JavaScript en ligne est obsolète (défini sur false par défaut dans 3.x) et son remplacement est la syntaxe @plugin et l'utilisation d'un plug-in JS approprié. - (Voir: http://lesscss.org/features/#plugin-atrules-feature )

Oui, vous pouvez toujours définir les options de compilation sur javascriptEnabled: true, mais cela n'est pas considéré comme une pratique recommandée pour les feuilles de style. En général, votre feuille de style ne doit pas contenir de JS. Il vaut mieux utiliser un plugin.

1
Matthew Dean

J'ai eu ce problème en utilisant la dernière version de moins. Ensuite, je suis passé à la version 2.7 et je l'ai fait réparer.

1
Anderson Sousa