关于webpack打包后的导出问题。

RookieGz
  • 2
新手上路,请多包涵

使用webpack打包node项目,使用ts写的。为什么打包出来的js文件没有导出。
webpack配置:

const path = require('path')

function absolutePath(relative) {
  return path.resolve(__dirname, relative)
}

module.exports = {
  mode: 'development',
  entry: absolutePath('./index.ts'),
  output: {
    path: absolutePath('./build'),
    filename: '[name].js',
    publicPath: '/',
  },
  target: 'node',
  module: {
    rules: [
      {
        test: /\.(ts|tsx)$/,
        use: [{ loader: 'ts-loader' }],
      },
    ],
  },
  resolve: {
    extensions: ['.ts', '.tsx'],
    alias: {
      src: absolutePath('../src'),
      assets: absolutePath('../assets'),
    },
  },
}

./index.ts

export * from './src/utils'
export * from './src/node'
export * from './src/browser'

引用打包后的文件 (./test/_test_/index.js )

const all = require('/Users/zcool/Desktop/TESTSPACE/zgz_utils/build/main')

console.log(all)

截屏2021-08-16 14.57.12.png

为什么没有index.ts里的导出的方法呢?

补充tsconfig.json:

{
  "compilerOptions": {
    "module": "CommonJS", // 指定生成什么模块代码。
    "moduleResolution": "Node",
    "typeRoots": ["./typings", "./node_modules/@types"],
    "target": "ES2015", // 为生成的 JavaScript 设置 JavaScript 语言版本并包含兼容的库声明。
    "lib": ["ES2021", "DOM"],
    "allowJs": true,
    "allowSyntheticDefaultImports": true, // 允许导入export = 模块
    // "esModuleInterop": true
  },
  "include": ["**/*.ts", "**/*.d.ts"],
  "exclude": ["webpack.config.js"]
}
回复
阅读 366
1 个回答
RookieGz
  • 2
新手上路,请多包涵
✓ 已被采纳
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏