【问题标题】:How to override plugin's main property in Aurelia/Webpack skeleton?如何在 Aurelia/Webpack 骨架中覆盖插件的主要属性?
【发布时间】:2016-08-27 06:23:27
【问题描述】:

我在基于 webpack 骨架的demo Aurelia/enhance 应用程序中使用aurelia-gravatar 插件。

要使其正常工作,我必须手动将 "main": "dist/commonjs/index.js", 添加到 node_modules/aurelia-gravatar-component/package.json

有没有办法从应用程序package.json 执行此覆盖?这对我不起作用:

  "aurelia": {
    "build": {
      "resources": [
        "aurelia-gravatar-component/gravatar"
      ]
    },
    "moduleRootOverride": {
      "aurelia-gravatar-component": "dist/commonjs"
    }
  },

浏览器中的错误是Error: Cannot find module './aurelia-gravatar-component'.

如何快速测试演示应用:

# get the demo app
git clone https://github.com/k2s/aurelia-skeleton-esnext-webpack-enhance.git
cd aurelia-skeleton-esnext-webpack-enhance
npm install

# manually add '"main": "dist/commonjs/index.js",' to 'node_modules/aurelia-gravatar-component/package.json'

# start serving the application
npm start
# open the application in browser
xdg-open http://localhost:9000

【问题讨论】:

    标签: webpack aurelia


    【解决方案1】:

    在动态导入插件时,您可以直接引用主文件。在您的src/main.js 文件中,只需按以下方式配置插件,直到项目修复他们的package.json

    aurelia.use
      .standardConfiguration()
      .developmentLogging()
      .plugin('aurelia-gravatar-component/dist/commonjs/index')
      .globalResources('hello')
    

    您还需要将该文件添加到您的 package.json 的构建资源中:

    "aurelia": {
      "build": {
        "resources": [
          "aurelia-gravatar-component/dist/commonjs/index",
          "aurelia-gravatar-component/dist/commonjs/gravatar"
        ]
      },
    },
    

    但最终aurelia-gravatar 应该定义一个main - 随时向该项目提交错误报告。

    希望对您有所帮助。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 2014-11-29
    • 2017-01-04
    • 1970-01-01
    相关资源
    最近更新 更多