使用Ionic和Webpack导入ngstorage时无法解析模块'angular'

时间:2016-04-08 09:04:41

标签: javascript angularjs ionic-framework webpack

我正在使用Ionic与Webpack和Typescript实现一个应用程序。 我通过npm安装'ngstorage'并尝试导入条目ts文件,但Webpack显示错误 - '无法解析模块'angular''。

我搜索过这个错误并意识到我需要在package.json文件和node_modules中包含angular。 但是,ionic-sdk模块已经包含了角度。所以它反而在浏览器中显示一个不可接受的错误,我试图多次加载角度。

Webpack是否有办法跳过模块解析器或指向角度模块到ionic-sdk模块的路径?或者是否有其他建议的进口方式?

谢谢。

2 个答案:

答案 0 :(得分:6)

我根本不熟悉离子,但我希望我可以帮助你。 首先在文件中使用angular。在文件顶部,您需要导入角度:

import angular from 'angular';

然后我得到了两条可能对你有帮助的建议:

  1. 将角度添加为外部库
  2. 如果您确定在使用webpack创建的包之前加载了角度,则可以在webpack配置中添加角度作为外部库:

    externals: [
      'angular'
    ]
    
    1. “教”webpack在哪里寻找角度
    2. 感谢resolve.alias,您可以覆盖webpack中的默认导入。因此,在您的配置文件中,您可以执行以下操作:

      resolve: {
        alias: {
          angular: 'path/to/sdk/angular'
        }
      }
      

      正如我所说,我不熟悉离子,所以如果那不是你想要的,我很抱歉:)。

答案 1 :(得分:1)

使用KisaneNeko的回答我能够在不添加角度的情况下执行以下操作。这解决了webpack的问题,但仍然给了我其他问题,但也许它会为你工作。

  resolve: {
      alias: {
          'angular': '../../node_modules/ionic-sdk/release/js/ionic.bundle.js',
      }
  }

如果您需要,请参阅webpack的别名文档:https://webpack.github.io/docs/configuration.html#resolve-alias