使用webpack中的文件加载器导入更少的文件

伊凡·波什乔夫(Ivan Borshchov)

我想使用文件加载器生成版本较少的文件导入

<link rel="stylesheet/less" type="text/css" href="/static/styles.<VERSION/HASH>.less" />

我希望我可以

import '@/assets/styles.less'

在中main.js

我只需要版本控制(每次修改styles.less文件时自动重命名文件)就可以了,我不想在编译期间进行较少的编译,因为我less.modifyVars在运行时使用所以我正在使用

import '@/assets/less.min.js'

搜索rel="stylesheet/less"标签并对其进行编译。当我在index.html中手动添加时

<link rel="stylesheet/less" type="text/css" href="/static/styles.less" />

所有的作品,但我需要版本控制才能持续交付

我试过的是向装载程序添加下一条规则:

{
    test: /\.less$/,
    loader: 'file-loader',
},

但是在编译过程中我得到:

ERROR  Failed to compile with 1 errors                                                                           13:05:04

This dependency was not found:

* @/assets/styles.less in ./src/main.js

To install it, you can run: npm install --save @/assets/styles.less

在此处输入图片说明

死神908

波纹管的配置如您所愿。您可以在github上找到此示例

src / main.js

import a from "@/assets/styles.less"

console.log(`You don't need to import less file here at all, only in index.ejs but if you need the reference, there you have it: ${a}`);

资产/样式

  // Variables
@link-color:        #428bca; // sea blue
@link-color-hover:  darken(@link-color, 10%);

// Usage
a,
.link {
  color: @link-color;
}
a:hover {
  color: @link-color-hover;
}
.widget {
  color: #fa0;
  background: @link-color;
}

webpack.config.js

const HtmlWebpackPlugin = require("html-webpack-plugin");
const path = require('path')
module.exports = {
  entry: ['./src/main.js'],
  plugins: [
    new HtmlWebpackPlugin({template: 'src/index.ejs'}),
  ],
  devtool: '#source-map',
  resolve: {
    extensions: ['.less', '.js'], // not require
    alias: {'@': path.resolve(__dirname, 'src')}
  },
  module: {
    rules: [
      {
        test: /\.less$/,
        loader: 'file-loader',
        options: {
          publicPath: '', // you can override this to put less output in different folder
          name: 'static/[name].[ext]?[sha512:hash:base64:6]' // I guess you want the filename to stay the same after it's modified
        }
      },
    ],
  },
};

src / index.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet/less" type="text/css" href="<%= require('@/assets/styles.less') %>" />
</head>
<body>
</body>
</html>

请注意,下面的异常提示您找不到文件@/assets/styles.less请确保指定了正确的路径,并且如果您使用别名而不是相对路径,则您在中具有正确的别名webpack.config.js

错误编译失败,出现1个错误
13:05:04

找不到此依赖项:

  • ./src/main.js中的@ / assets / styles.less

要安装它,您可以运行:npm install --save @ / assets / styles.less

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用webpack文件加载器加载图像文件

无法使用webpack-4文件加载器导入字体

Webpack 可能需要适当的加载器来处理文件。加载器不从导入加载 CSS

导入CSS文件作为块级导入使用更少

使用webpack文件加载器缩小/优化所需的文件

使用文件加载器从webpack的jQuery UI加载资产

无法使用Webpack文件加载器加载图像

使用文件加载器加载Webpack车把图像

webpack文件加载器冻结

Webpack文件加载器publicPath

使用Webpack导入JavaScript文件

webpack文件加载器加载文件夹中的所有文件

Webpack文件加载器不复制文件

webpack 文件加载器复制文件

Webpack4-从更少的文件导入的CSS文件没有被缩小

Webpack文件加载器和CSS中的图像

用于.ejs模板中图像的Webpack文件/图像加载器

在webpack文件加载器中获取错误的输出路径

反应webpack文件加载器-所需网址中的变量

Webpack-使用文件加载器要求图像

如何告诉webpack仅对特定文件使用插件或加载器?

如何在webpack中使用文件加载器

使用webpack导入目录中的所有sass文件

Webpack-文件加载器不起作用(无法在我的HTML中动态加载SVG文件)

如何使用Webpack 3,Typescript和文件加载器加载index.html文件?

Webpack 4 + Pug / Sass提取/文件加载器无法多次导入

用于“react-markdown”npm 库的.md 文件导入的Webpack 加载器?

我可以使用 webpack 导入加载器来要求 CSS 文件以及某些 JS 依赖项吗?(或者,如何隐式加载 CSS)

Webpack文件加载器输出[对象模块]