草庐IT

javascript - 无法动态转译 ES 模块 System.config({ transpile : 'transpile-module' })

这是我的tsconfig.js{"compilerOptions":{"experimentalDecorators":true,"emitDecoratorMetadata":true,"moduleResolution":"node","target":"es5","module":"system","noImplicitAny":false,"outDir":"built","rootDir":".","sourceMap":false},"exclude":["node_modules"]我正在使用tsc命令将我的“hello-angular.ts”转译为“hello-angu

javascript - ES6 模块导入和依赖管理

使用转译器已经可以使用ES6模块。最简单的方法之一是使用Browserify和Babelify。我遇到的问题是如何处理依赖管理。在过去,您只需要一些Bower依赖项。该构建会将非CDN捆绑到vendor.js并将特定文件投影到foobar.js(或其他)。因此,您只需bowerinstallfoobar--save就可以在不同的项目中使用生成的代码。如果foobar和您的新项目具有共同的依赖关系,则可以使用Bowers平面依赖关系轻松解决。现在ES6模块来了:假设我有一个使用lodash的项目foo。目录结构如下:src/js/foo.jssrc/vendor/lodash/dist/

javascript - ES6 : No source code for webpack "cheap-module-eval-source-map" and "cheap-module-source-map" only ** WEBPACK FOOTER **

它曾经有效。现在,当我添加一个断点时:saveSnippet:(title,imageUrl,role)=>{debugger;...chrome(53)中的结果是:我尝试使用它并将配置更改为'cheap-module-source-map'和'eval-source-map'和'source-map'。现在只有'eval-source-map'和'source-map'可以工作。webpack.config.js(Webpack1.13.2):varpath=require('path')varwebpack=require('webpack')varCompressionPlugi

javascript - ES6 React - 引用、浅拷贝和深拷贝有什么区别以及如何比较它们?

我知道这个问题已经被讨论了很多次,我想我已经有了一个基本的想法。我从StackOverflow找到了一些评分最高的答案:Whatisthedifferencebetweenadeepcopyandashallowcopy?DeepCopyandShallowCopy但所有的答案对我来说似乎都很模糊。让我们考虑以下示例:constuser={name:"James",age:33,highlights:{career:"Basketballplayer",NBAChampion:[2012,2013,2016],},promotion:()=>("GetLeBron15now!"),};

javascript - 将依赖项注入(inject) ES2015 模块

是否可以像C#或Java等其他编程语言一样将依赖项注入(inject)ES2015模块?如果我导入一个模块,我就会对它产生硬依赖,并且以后在运行时无法更改它。例如,我有以下JavaScript代码:importAnimalfrom'./dog';classPerson{feedAnimal(){newAnimal().feed();}}我正在导入狗模块。但是如果我想把它变成一只猫呢?目前我必须手动修改第1行,但在某些情况下我希望它可以从外部进行配置,以便在某些情况下应该有一只猫,而在其他一些情况下它应该是一只猫。经典依赖注入(inject)可以完成的所有事情。我知道有一些DI框架,比如

javascript - 在 es6 中使用 webpack 的分块

我正在构建一个开始变得相当大的网络应用程序(用es6编写的React应用程序)。结果,我发现我的JS文件在移动设备上的下载时间长得令人无法接受。我正在尝试将大型JS应用程序分块为按需加载的block。我正在使用webpack,并阅读了这篇文章:https://webpack.github.io/docs/code-splitting.html通过本文,我将我的代码拆分为app.js和vendor.js,其中vendor.js包含所有第三方模块/插件。我想更进一步,将app.js文件分解成几个入口点,然后根据需要下载block。上面的文章描述了如何使用CommonJS或AMD来做到这一点

javascript - ES6 在循环之前或循环中声明变量

我应该在哪里以及如何声明在循环中使用的新变量?答:constmap=newMap(Object.entries(columns));letcols;for(let[key,value]ofmap){cols=value.split('|');//...}乙:constmap=newMap(Object.entries(columns));for(let[key,value]ofmap){letcols=value.split('|');//...}C:constmap=newMap(Object.entries(columns));varcols;for(let[key,value]o

javascript - 使用 create react app,并具有 ES6 依赖项

我写了一个使用ES6语法的npm包blokus。我使用create-react-app启动了一个项目web-blokus,它依赖于blokus。我可以毫无错误地运行npmstart,并在我的浏览器中查看我的web-blokus应用程序,它具有使用blokus的所有功能包。问题是我在运行npmbuild时遇到UglifyJS错误。static/js/main.8afd34e2.jsfromUglifyJsSyntaxError:Nameexpected[./~/blokus/blokus/blokus.js:3,0]似乎有一个已知的情况,UglifyJS不支持ES6依赖项(一些相关的问题

javascript - 使用 Webpack 和 Babel 的 ES6 动态导入

我一直在为我的ES6JS项目使用Webpack,并且在我开始使用动态导入之前一直运行良好。我的工作(router.js):import{navigo}from"Navigo";//routerimport{clients}from"Controllers/clients.js";constnavigo=newNavigo();navigo_router.on({'/clients':()=>{clients.init();}});但是我添加的页面/路由越多,模块头部堆积的导入就越多。这是一个相对较大的应用程序,我有很多页面/路由要添加,因此我需要动态加载它们以减少初始页面加载的大小。所

javascript - 为什么 for() 函数比 ES6 map() 和 some() 更快地查找重复项?

这个问题在这里已经有了答案:WhymostJavaScriptnativefunctionsareslowerthantheirnaiveimplementations?(1个回答)关闭4年前。我想使用map()和some()对我正在使用的函数进行基准测试,以确定对象数组中是否存在重复属性另一个函数做同样的事情,但在另一个for()中使用for()。letarray=[{"value":41},{"value":12},{"value":32}];letitens=array.map(x=>x.value);lethaveDuplicate=itens.some((item,idx)=