2016-06-11 2 views
10

Я пытаюсь подключить модуль к проекту с помощью webpack как своего связующего. Конечно, после попытки многих вещей, я получаю эту ошибку:npm ссылка с webpack - не удается найти модуль

ERROR in ./src/components/store/TableView.jsx 
Module not found: Error: Cannot resolve module 'react-bootstrap-table' 

Вот точные шаги, которые я взять, делая это:

1.) cd ../forks/react-bootstrap-table 
2.) npm link 
(success, checked ~/.nvm/.../node_modules/react-bootstrap-table for symlink and it's there) 
3.) cd ../../projRoot/ 
4.) npm link react-bootstrap-table 
(no errors thrown?, says successful link) 
5.) node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js 

Solutions Я пробовал:
- https://webpack.github.io/docs/troubleshooting.html
- How to make a linked component peerDepdencies use the equivalent node_modules of the script being linked to?
- И многие пурпурные ссылки на Google СЕРПС

webpack.config.js

const webpack = require('webpack') 
const path = require('path') 
const ROOT_PATH = path.resolve(__dirname) 

module.exports = { 
    devtool: process.env.NODE_ENV === 'production' ? '' : 'source-map', 
    entry: [ 
    'webpack/hot/only-dev-server', 
    './src/index.js' 
    ], 
    module: { 
    loaders: [{ 
     test: /\.jsx?$/, 
     exclude: /node_modules/, 
     loaders: ['react-hot','babel'] 
    }, 
    { 
     test: /\.scss$/, 
     loaders: ['style','css','sass'], 
     exclude: /node_modules/ 
    }, 
    { 
     test: /\.css$/, 
     loaders: ['style','css'] 
    }, 
    { 
     test: /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/, 
     loader: 'file-loader' 
    } 
    ] 
    }, 
    resolve: { 
    extensions: ['', '.js', '.jsx'], 
    fallback: path.resolve(__dirname, './node_modules') 
    }, 
    resolveLoader: { 
    fallback: path.resolve(__dirname, './node_modules') 
    }, 
    output: { 
    path: process.env.NODE_ENV === 'production' ? path.resolve(ROOT_PATH, 'app/dist') : path.resolve(ROOT_PATH, 'app/build'), 
    publicPath: '/', 
    filename: 'bundle.js' 
    }, 
    devServer: { 
    contentBase: path.resolve(ROOT_PATH), 
    historyApiFallback: true, 
    hot: true, 
    inline: true, 
    progress: true, 
    stats: 'errors-only', 
    host: '192.168.1.115' 
    }, 
    plugins: [ 
    new webpack.HotModuleReplacementPlugin() 
    ] 
} 

Примечание:
1. Это единственное символический в проекте
2. Я бег НОГО установить внутри раздвоенные версии (также пытался без, Безразлично» t work)
3. Я использую NVM, но я использовал символические ссылки, прежде чем без веб-пакета успешно.

Я был на этом в течение нескольких дней, любая помощь будет высоко оценена.

+0

мне тоже. Орехов нет существующего ответа. Проблема очевидна - babel/webpack не следует или не размещает символические ссылки. – Tim

+0

Это своего рода шоу-стоппер для меня. Я разрабатываю несколько поддерживающих библиотек для своих приложений в тандеме с моими приложениями, и похоже, что мне нужно найти альтернативу webpack для поддержки этого рабочего процесса. – Matt

+2

забавный факт: webpack ** не работает ** с ссылкой на npm. Это «хорошо документировано», но @ # $ * (трудно найти. Https://webpack.github.io/docs/troubleshooting.html#npm-linked-modules-doesn-t-find-their-dependencies. так часто переходите на использование ссылки на npm: если у вас есть вилка, либо укажите «require (« ../../../ yourfork »)' с таким количеством '../ ', так как вам нужно попасть в директорию fork или, альтернативно, указать на свою собственную вилку с помощью ссылки github вместо sempm, или (и мы начали это делать), просто буквально скопируйте вашу вилку в каталог node_modules для dev work. –

ответ

1

Хорошо, ребята, это характерно для моего прецедента, но обязательно следуйте всем инструкциям, чтобы полностью создать библиотеку, в которой вы являетесь symlinking. Первоначально я устанавливал npm и создавал gulp, но этого было недостаточно. Мне пришлось запустить несколько дополнительных команд, чтобы библиотека полностью построилась.

Теперь это работает! Если у вас все еще есть проблемы, просмотрите документацию для каждой символической ссылки, и используйте мою конфигурацию webpack в качестве шаблона для разрешения внешних библиотек.

0

Я столкнулся с аналогичной проблемой с webpack и в конечном итоге, добавив это мой webpack.config.js:

module.exports = { 
    resolve: { 
     symlinks: false 
    } 
}; 

Вот ссылка на webpack docs. Поскольку ваш вопрос там был много, webpack и их api, так что я не знаю, насколько релевант мой ответ по вашему вопросу. Но для людей, сталкивающихся с этим или подобным вопросом сегодня, это может быть решением. Как видно, есть еще люди жалуются:

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