And*_*min 8 requirejs typescript lodash asp.net-mvc-5
如果我什么都不做并添加类型定义它适用于jquery但是lodash得到了
'_'引用UMD全局,但当前文件是一个模块.请考虑添加导入.
如果我尝试使用导入调用的任意组合导入lodash,我得到
lodash.js不是一个模块
我试图通过在这里提问来获得帮助,因为Angular(Angular 2)有另一个答案,所以它已经关闭了.我真的需要一个真正的答案,所以我用我自己的解决方案重新发布,希望有人最终帮助我理解这个问题.
在这种情况下,我是:
Die*_*itz 10
其他答案都不适合我。这是我解决问题的方法。
使用此方法,您将能够从全局包含加载 lodash
您还将获得极其重要的类型提示,而无需将 lodash 构建到您的 webpack 包中
现在,您可以在所有 ts 文件中全局访问 Lodash,无需导入它
这是我的设置。
超文本标记语言
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js" integrity="sha256-VeNaFBVDhoX3H+gJ37DpT/nTuZTdjYro9yBruHjVmoQ=" crossorigin="anonymous"></script>
</head>
Run Code Online (Sandbox Code Playgroud)
国家公共管理
npm i @types/lodash lodash --save-dev
Run Code Online (Sandbox Code Playgroud)
网页包
externals: {
_: 'lodash'
}
Run Code Online (Sandbox Code Playgroud)
全局.d.ts
import _ from 'lodash';
declare global {
const _: typeof _;
}
Run Code Online (Sandbox Code Playgroud)
tsconfig.json
"types": [
"lodash"
],
Run Code Online (Sandbox Code Playgroud)
条目.ts
console.log(_.VERSION)
Run Code Online (Sandbox Code Playgroud)
此方法将加快编译包所需的时间。减少构建大小,进而减少每次构建后客户端的下载大小,并允许客户端使用 CDN 中的缓存库,这些库可能已经存在于内存中,来自以前的构建、其他页面或其他站点。
我在我的全局类型定义文件(〜\ src\typings.d.ts)中添加了以下代码来解决问题.我正在使用Angular CLI 1.7
// lodash global typing - begin
declare namespace _ {
}
// lodash global typing - end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6428 次 |
最近记录: |