代码之家  ›  专栏  ›  技术社区  ›  Jimmy

如何用新插件替换less loader中不推荐的javascriptEnabled选项

  •  0
  • Jimmy  · 技术社区  · 6 年前

    我需要对较少的文件使用inline js,并且以前有一个webpack配置,其中包含以下内容以启用inline js:

    module.exports = {
      ...
      module: {
        ...
        rules: [
          ...
          {
            test: /\.less$/,
            use: [
              { loader: 'style-loader' },
              { loader: 'css-loader' },
              {
                loader: 'less-loader',
                options: { javascriptEnabled: true },
              },
            ],
          },
        ],
      },
    };
    

    javascriptEnabled 选项已被弃用,其替代方法是使用 @plugin 语法和使用js插件。但是,我有点困惑 docs

    0 回复  |  直到 6 年前
        1
  •  4
  •   Luïs    6 年前

    出于安全考虑,内联javascript已被弃用。它易受代码注入攻击。因此,强烈建议不要使用内联javascript。

    你可以使用以前的旧版本 javascriptEnabled

    我做了一些调查,我想你有你的想法 plugins 从这个 question 启用Javascript less-loader 用一个 webpack less plugin 出于安全考虑。

    如果你这么想的话 docs

    您可以用不同的 Less plugins 如您提供的文档所示:

    // my-plugin.js
    install: function(less, pluginManager, functions) {
        functions.add('pi', function() {
            return Math.PI;
        });
    }
    // etc
    

    如果要在样式表中使用此选项:

    @plugin "my-plugin";
    .show-me-pi {
      value: pi();
    }
    

    .show-me-pi {
      value: 3.141592653589793;
    }
    
    推荐文章