关于webpack打包后的导出问题。
使用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)
为什么没有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"]
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过webpack.output.library可以解决问题。
webpack文档