相关疑难解决方法(0)

使用require('...')变量与使用webpack中的字符串

我有一个对我没有多大意义的问题.

我正在映射具有"name"和"href"属性的对象数组.

let appleIcons = _.map(appleIcons, appleIcon => {
  appleIcon.href = require(appleIcon.href);
  return appleIcon;
}); 
Run Code Online (Sandbox Code Playgroud)

在循环内部我想要图像,但它会抛出错误".*$:11未捕获错误:找不到模块".

当我打印appleIcon.href的值并尝试将其直接放入require('')时,它可以正常工作.

appleIcons = _.map(appleIcons, appleIcon => {
  appleIcon.href = require('./../../mobile-config/apple-icon-57x57.png');
  return appleIcon;
});
Run Code Online (Sandbox Code Playgroud)

所以你能解释一下为什么第二个例子有效并且第一个例子会抛出错误吗?如何将变量放在require('')中?

谢谢!

javascript webpack

12
推荐指数
2
解决办法
1万
查看次数

webpack动态模块加载器由require

好吧,我已经搜索过高低,但如果webpack不可能,则无法可靠地确定.

https://github.com/webpack/webpack/tree/master/examples/require.context 似乎表明可以将字符串传递给函数并加载模块...

但我的尝试不起作用:webpack.config.js

'use strict';
let webpack     = require('webpack'),
    jsonLoader  = require("json-loader"),
    path        = require("path"),
    fs          = require('fs'),
    nodeModules = {};

fs.readdirSync('node_modules')
    .filter(function(x) {
        return ['.bin'].indexOf(x) === -1;
    })
    .forEach(function(mod) {
        nodeModules[mod] = 'commonjs ' + mod;
    });


let PATHS = {
    app: __dirname + '/src'
};

module.exports = {
    context: PATHS.app,
    entry: {
        app: PATHS.app+'/server.js'
    },
    target: 'node',
    output: {
        path: PATHS.app,
        filename: '../build/server.js'
    },
    externals: nodeModules,
    performance: {
        hints: "warning"
    },
    plugins: [
        jsonLoader
    ],
    resolve: { …
Run Code Online (Sandbox Code Playgroud)

javascript require node.js webpack webpack-2

10
推荐指数
3
解决办法
1万
查看次数

标签 统计

javascript ×2

webpack ×2

node.js ×1

require ×1

webpack-2 ×1