1
我有一个项目,使用Typescript 2.4.1,Webpack 2.6.1,我有一些问题获得相对路径来正确加载我的图像。Webpack文件加载器不加载具有复杂路径的文件
如果我把图像在同一文件夹作为我.ts
文件加载它,我可以得到它的工作:
const background = require("./background.png");
console.log(background);
所以此工程:
src
Book.ts
background.png
但我可以”不知道如何使文件加载器找到这个结构的图像:
src
Book.ts
assets
background.png
我试着设置publicPath
在here中描述的文件加载器选项中,但无论如何无论如何无论如何都无法加载文件,无论我尝试使用绝对路径和相对路径的组合。
这是我的webpack.config.js文件。 (我删除了一些部件,因为它是长。)
module.exports = {
entry: {
app: [
path.resolve(__dirname, './src/main.ts')
],
vendor: ['pixi', 'p2', 'phaser', 'webfontloader']
},
output: {
pathinfo: true,
path: path.resolve(__dirname, 'dist'),
publicPath: './dist/',
filename: 'bundle.js'
},
module: {
rules: [
{test: /\.ts$/, enforce: 'pre', loader: 'tslint-loader', options: {emitErrors: true, failOnHint: true}},
{test: /\.ts$/, loader: 'ts-loader'},
{test: /pixi\.js/, use: ['expose-loader?PIXI']},
{test: /phaser-split\.js$/, use: ['expose-loader?Phaser']},
{test: /p2\.js/, use: ['expose-loader?p2']},
{test: /\.(png|svg|jpg|gif|mp3|wav|mp4)$/, use: [{
loader: 'file-loader',
options: {
outputPath: 'assets/'
}
}]},
{enforce: "pre", test: /\.js$/, loader: "source-map-loader"}
]
},
node: {
fs: 'empty',
net: 'empty',
tls: 'empty'
}
}
这是我的打字稿需要声明:
declare let require: {
<T>(path: string): T;
(paths: string[], callback: (...modules: any[]) => void): void;
ensure: (paths: string[], callback: (require: <T>(path: string) => T) => void) => void;
};
(我试过越来越漂亮ES6进口的工作,但并不顺利。)
那么,我得到它与url-loader工作,然后回去,并尝试文件加载器,它的工作...因为我是一个白痴,从来没有使用正确的相对路径。热闹的部分?在我的问题中,我写道我的文件处于我正在尝试使用的相对路径,而不是他们实际使用的结构。 – CorayThan
:D哦,好吧,错误发生在你想出来的好东西上 – Flocke