Gulp + Webpack ts loader 移除 requirejs 和定义模块名称注解

Posted

技术标签:

【中文标题】Gulp + Webpack ts loader 移除 requirejs 和定义模块名称注解【英文标题】:Gulp + Webpack tsloader removes require.js amd define moduleName annotation 【发布时间】:2020-04-07 04:44:38 【问题描述】:

在 Typescript 项目中,编译后的代码应该有一行:

 (function webpackUniversalModuleDefinition(root, factory) 
                        ... 
 define("moduleName", [], function ()  ...  );

使用 amd 的定义(异步模块定义)

我用 gulp + webpack ts-loader 编译 ts 文件并获取

 define([], function ()  ...  );

所以我需要手动添加moduleName,有没有办法自动添加(或者干脆不删除名称)?

我尝试搜索它,ng-annotate 或 uglify mangle:false 或 amd-optimize 但它们不起作用。 我可能可以用 gulp-replace 对其进行硬编码,但这可能不是一个好主意。

在我的 webconfig 中,我有:

library: 'moduleName',
libraryTarget: 'umd'

谁能帮我完成这个小任务?

【问题讨论】:

【参考方案1】:

找到了,我需要为我的 webpack 文件添加umdNamedDefine: true。 见here和here

【讨论】:

以上是关于Gulp + Webpack ts loader 移除 requirejs 和定义模块名称注解的主要内容,如果未能解决你的问题,请参考以下文章

模块解析失败:Webpack Typescript Loader 中出现意外的令牌

gulp + webpack + css-loader + typescript:“找不到模块”

带有 ts-loader 的 webpack 线程加载器

ts-loader vs babel-loader 在 Typescript 中使用 webpack

适配 webpack v4的最后一个ts-loader版本是8.2.0

挂在 ts-loader (webpack) 上的“npm run”