2016-11-25 132 views
1

你好,希望你好。Webpack externals找不到模块

我目前的WebPack有点挣扎,一直在寻找最佳的解决方案,以满足以下:

我想从我的单页的应用程序加载的JSON配置和使用它的地方。这实际上工作得很好:

externals: { 
    'config': JSON.stringify(getAppConfig()) 
} 

当然,这是加入的WebPack配置和getAppConfig是:

var getAppConfig =() => { 
    var finalConfig = require('./config.json'); 
    if (process.argv.indexOf('--env.production')) { 
     finalConfig = Object.assign(finalConfig, require('./config.production.json')); 
    } 
    /*more stuff here but removed for simplicity*/ 
    return finalConfig; 
} 

然后一个模块里面,我做

import Config from 'config'; 

,并使用导入的JavaScript目的。令人惊讶的一切正常:)我的问题其实是这个丑陋的错误的WebPack

ERROR in ./ClientApp/store/WeatherForecasts.ts 
Module not found: Error: Cannot resolve module 'config' in 

我真的不希望有CI目的伪造的错误并没有什么,但我宁愿明白发生了什么事情比以某种方式忽略它。顺便说一句,我正在使用打字稿的项目,不知道它是否改变了什么,但最好说明我猜的所有事实。这是打字稿模块的定义:

declare module 'config' { 
    export interface Config { 
     backendUrl: string; 
    } 
    export default {} as Config; 
} 

所有帮助非常感谢。 Peter

+0

在你的配置中'libraryTarget'的值是多少? – Thaadikkaaran

+0

你可能会遇到某些事情。我实际上有2个配置,一个用于服务器端预渲染,一个用于客户端。客户端,没有设置,它没有抱怨。服务器端它设置为commonjs,它抱怨。将考虑改变它 –

+0

嗯,好的,所以把它改成任何东西都无济于事。但它绝对建立客户端而不是服务器版本。我会更多地考虑它。 –

回答

0

好的,我有一个解决方案。而且我恐怕只是没有正确阅读文档而已。请参阅我使用webpack-merge,但我不知道它无法正确合并数组。因此,我的服务器prerendering包配置覆盖共享的一个,它丢失。现在好了