0

我正在开发一个 NPM 包,当使用 yarn link 将其链接到测试仓库时,导入需要/src附加到包名称。

.babelrc

{
  "presets": [
    [
      "env",
      {
        "modules": false
      }
    ]
  ],
  "env": {
    "test": {
      "presets": [
        ["env", {
          "targets": { "node": true }
        }]
      ]
    }
  }
}

包json主要:"main": "dist/main.js",

Webpack 配置(使用 webpack 4):

module.exports = {
  entry: {
    main: './src/index.js'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        use: {
          loader: 'babel-loader',
        },
        exclude: /node_modules/
      },
      {
        test: /\.json$/,
        use: {
          loader: 'json-loader'
        },
        exclude: /node_modules/
      }
    ]
  },
}

src/index.js

export default () => { ... }

为清楚起见,这在测试存储库中可以正常工作:

import myDefaultFunction from 'package-name/src'

但这不是(这就是我想要的工作

import myDefaultFunction from 'package-name'
4

1 回答 1

0

"main": "src/index.js"在你的模块中分配package.json

主要的

主要字段是模块 ID,它是程序的主要入口点。也就是说,如果您的包名为 foo,并且用户安装了它,然后执行了 require("foo"),那么您的主模块的导出对象将被返回。

这应该是相对于包文件夹根目录的模块 ID。

对于大多数模块来说,拥有一个主脚本是最有意义的,而其他的通常不多。

如果你想在开发时编译你的模块,你应该在webpack.configbabel-loader 选项中包含你的模块

于 2018-07-04T18:07:24.947 回答