webpack需要动态文件路径?

Posted

技术标签:

【中文标题】webpack需要动态文件路径?【英文标题】:Dynamic file path in require with webpack? 【发布时间】:2017-01-20 16:00:49 【问题描述】:

当我使用 require 手动请求文件时,这工作正常,但是当我使用完全相同的请求时,但更改字符串以使其与变量分开时失败。

这很好用:

module.exports = (function() 
    var $svg = require('svg-inline!../../assets/svgs/global/connected.svg');
    console.log($svg);
());

但是,如果我要这样做:

module.exports = (function() 
    var $path = '../../assets/svgs/global/';
    var $svg = require('svg-inline!'+$path+'connected.svg');
    console.log($svg);
());

它失败并在控制台内说:

Uncaught Error: Cannot find module "."

我想我的问题是你为什么不能像我在这里一样连接字符串?

【问题讨论】:

github.com/webpack/webpack/issues/118 【参考方案1】:

试试:

require(`svg-inline!$$pathconnected.svg`)

如果您在动态路径中需要更多变量,请尝试拆分要求:

function getIcon(name) 
	const [category, filename] = name.split(":");

	if (filename) 
		return require(`one_directory/icons/$category/$filename.svg`);
	 else 
		return require(`two_directory/icons/$name.svg`);
	

【讨论】:

【参考方案2】:

我认为您必须查看 webpack context。基本上,当您尝试要求包含表达式的内容时,webpack 将创建一个上下文。 该表达式将被视为正则表达式,它不会像您预期的那样工作。

【讨论】:

以上是关于webpack需要动态文件路径?的主要内容,如果未能解决你的问题,请参考以下文章

vue-cil和webpack中本地静态图片的路径问题解决方案

vue-cil和webpack中本地静态图片的路径问题解决方案

webpack引用动态资源路径错误的解决方案

vue中动态加载图片报错

如何使用动态目录中的 webpack 要求 JavaScript

webpack.config.js配置入口出口文件