【问题标题】:Webpack not resolving babel or babel-loader installed globallyWebpack 无法解析全局安装的 babel 或 babel-loader
【发布时间】:2016-11-09 02:55:23
【问题描述】:

我一直在尝试一个新项目,想使用 webpack 和模块来拆分代码。我已经安装了 npm,然后安装了 webpack,如下所示 npm install -g webpack

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 解析全局安装的包?

【问题讨论】:

  • npm i babel-loader --save-dev ?
  • @releaseanp 这样做会在本地创建 node_modules 并再次安装包。但是,这些软件包已经全局安装。我该如何利用它?
  • 您通过加载程序传递的文件的扩展名是什么。除了 JS(可能是 JSX)还有什么?
  • @realseanp only js,正如您在 config.js 中看到的那样
  • 另外,将全局安装的包从/usr/local/lib/node_modules复制到myproject/node_modules工作

标签: node.js webpack babeljs


【解决方案1】:

终于搞定了。不确定这是否是正确的方法。然而, 这就是我的项目的设置和工作方式。我想应该有更好的方法来为模块加载器设置预设。

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']
                }
            }
        ]
    },

}

【讨论】:

  • 我尝试使用此解决方案,但“回退”会产生错误,指出它是对象上的未知属性。
猜你喜欢
  • 2017-08-04
  • 2017-10-05
  • 2017-11-13
  • 2022-09-29
  • 2020-11-18
  • 2017-03-14
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多