babel不转译npm软件包-软件包名称后需要/ src

时间:2018-07-04 16:59:16

标签: javascript webpack babel

我正在开发一个NPM软件包,当使用yarn链接将其链接到测试仓库时,导入需要在软件包名称后附加/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'

1 个答案:

答案 0 :(得分:0)

在模块package.json中分配webpack.config

主要

  

主要字段是模块ID,是您的主要入口点   程序。也就是说,如果您的软件包名为foo,并且有用户安装   它,然后确实require(“ foo”),然后主模块的导出   对象将被返回。

     

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

     

对于大多数模块,拥有主脚本和   通常不会太多。

如果要在开发过程中转换模块,则应将模块包含在{{1}} babel-loader选项中