2017-01-18 8 views
1

В моем WebPack у меня есть этот конфиг с WebPack блокамиWebpack2 пользовательского модуль ошибки решительности

module.exports = createConfig([ 
    customConfig({ 
    resolve: { 
     modules: [ 
     'src', 
     'node_modules', 
     ], 
    }, 
    }), 
    entryPoint({ 
    app: ['./src/client'], 
    }), 
    setOutput({ 
    path: path.resolve(__dirname, `../${assetPath}`), 
    publicPath: `${publicPath}/`, 
    filename: 'bundle.js', 
    }), 
    babel(), 
    cssModules(), 

Я могу импортировать из node_modules довольно хорошо, а также из первого каталога в файле Src

src 
    components 
      icons 
       index.js 
      navs 
       primary.js 
      containers 
       index.js 
      client.js 

в client.js Если я делать import App from 'containers он работает отлично

Но если в primary.js, когда я стараюсь избегать относительно импорта, как так import Icons from 'components/icons'

Я получаю эту ошибку

module.js:471 
    throw err; 
    ^

Error: Cannot find module 'components/icons' 
    at Function.Module._resolveFilename (module.js:469:15) 
    at Function._module2.default._resolveFilename (/Users/abiodun/projects/***/****/node_modules/require-hacker/babel-transpiled-modules/require hacker.js:423:34) 
    at Function.module._load (/Users/abiodun/projects/****/****/node_modules/piping/lib/piping.js:211:27) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/Users/abiodun/projects/****/****/src/components/primary-nav/primary-nav.jsx:5:1) 
    at Module._compile (module.js:570:32) 
    at Module.require._compile (/Users/abiodun/projects/****/****/node_modules/webpack-isomorphic-tools/source/index.js:477:29) 
    at loader (/Users/abiodun/projects/****/****/node_modules/babel-register/lib/node.js:144:5) 
    at Object.require.extensions.(anonymous function) [as .jsx] (/Users/abiodun/projects/****/****/node_modules/babel-register/lib/node.js:154:7) 

Любая помощь пустошь быть оценена

+0

проверьте, нет ли у вас экспорта в компонент. –

+0

Нет, мне не хватает экспорта. он работает, если я не импортирую иконки из «../../ components/icons» – Abiodun

+0

Если возможно, создайте проект-образец github и передайте ссылку –

ответ

1

Так оказалось, что проблема была со стороны узла, как я делаю изоморфный стороне сервера визуализации. Я должен добавить модуль «add-module-path», чтобы сделать узел требуемым из разных каталогов, кроме node_modules. npm i add-module-path --save Вот последний код в моем файле rootServer.js.

require('app-module-path').addPath(__dirname); // add this lines 


const WebpackIsomorphicTools = require('webpack-isomorphic-tools'); 
const isomorphicConfig = require('./webpack/isomorphic.config'); 

global.__CLIENT__ = false; 
global.__SERVER__ = true; 
global.__DEVELOPMENT__ = process.env.NODE_ENV !== 'production'; 
if (global.__DEVELOPMENT__) { 
    if (!require('piping')({ hook: true, ignore: /(\/\.|~$|\.json|\.scss$)/i, })) {} 
    require('./babel'); 
    require('app-module-path').addPath('./src'); // add this path if it's development 
} 
else { 
    require('app-module-path').addPath('./dist'); // add this part if it's production 
} 
const serverPath = global.__DEVELOPMENT__ ? 'src' : 'dist'; 
global.webpackIsomorphicTools = new WebpackIsomorphicTools(isomorphicConfig) 
    .server('./',() => { 
    require(`./${serverPath}/server`)(); 
    }); 

Webpack отлично справляется с внешним интерфейсом без изоморфного отображения стороны сервера.

Смежные вопросы