2016-07-06 90 views
4

我一直在尝试一个新项目,并希望使用webpack和模块来分割代码。我已经安装NPM之后安装的WebPack如下 npm install -g webpackWebpack无法解析全球安装的babel或babel-loader

npm install -g babel-cli babel-core babel-loader babel-presets-es2015

现在,在项目中,我创建了一个包含以下内容的新config.js文件。

module.exports = { 
    entry: './src/js/app.js', 
    output: { 
     filename: 'dist/js/bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       loader: 'babel-loader' 
      } 
     ] 
    }, 

} 

不过,我总是得到一个错误说 ERROR in Entry module not found: Error: Cannot resolve module 'babel-loader'

换句话说,如何使的WebPack解决全球范围内安装的软件包?

+0

'npm我babel-loader --save-dev'? –

+0

@releaseanp这样做会在本地创建node_modules并再次安装该软件包。 但是,这些软件包已经全局安装。我如何使用它? – Andrews

+0

什么是您通过加载器传递的文件的扩展名。除JS之外的任何东西(也许JSX)? –

回答

2

终于搞定了。不知道这是否正确。但是, 这是我的项目安装和工作方式。我想应该有更好的方式来设置模块装载机的预置。

my-project 
    src 
    js 
     entry.js 
     module1.js 
     module2.js 
    dist 
    index.html 
    js 
     bundle.js 

现在,我目前的config.js设置如下所示。

module.exports = { 

    resolve: { 
     fallback: '/usr/local/lib/node_modules' 
    }, 
    resolveLoader: { 
     fallback: '/usr/local/lib/node_modules' 
    }, 
    entry: './src/js/app.js', 
    output: { 
     filename: 'dist/js/bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       loader: 'babel-loader', 
       query: { 
        presets: ['/usr/local/lib/node_modules/babel-preset-es2015'] 
       } 
      } 
     ] 
    }, 

} 
+0

我试图使用这个解决方案,但'fallback产生一个错误,说它是对象上的一个未知属性。 – Mel