小编Jav*_*ome的帖子

Webpack 模块警告:无法从“数据”URL 解析源映射

我收到了一个令人沮丧的警告,并且无法找到可用的解决方案:

WARNING in ../lensing/dist/main.js
Module Warning (from ./node_modules/source-map-loader/dist/cjs.js):
Failed to parse source map from "data" URL: data:application/json;charset=utf-8;base64,eyJ2ZXJza [...]
Run Code Online (Sandbox Code Playgroud)

我的 webpack.config.js 看起来像(npm 模块的设置):

module.exports = {
    entry: './src/index.js',
    output: {
        filename: 'main.js',
        path: path.resolve(__dirname, 'dist'),
        library: 'lensing',
        libraryTarget: 'umd',
        umdNamedDefine: true
    },
    module: {
        rules: [
            {
                test: /\.m?js$/,
                exclude: /(node_modules|bower_components)/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env'],
                        plugins: [
                            '@babel/plugin-proposal-class-properties'
                        ]
                    }
                }
            },
            {
                test: /\.js$/,
                enforce: 'pre',
                use: ['source-map-loader'],
            },
            {
                test: /\.(png|jpg|gif|svg)$/i,
                use: [
                    {
                        loader: …
Run Code Online (Sandbox Code Playgroud)

javascript source-maps webpack

37
推荐指数
7
解决办法
9万
查看次数

在AngularJS指令中转换属性

我正在创建一个选择替换指令,以便根据设计轻松选择样式,而不必总是对一堆标记(即指令为您做到!).

我没有意识到属性不会转移到你放置的位置ng-transclude,只是转到根元素.

我在这里有一个例子:http://plnkr.co/edit/OLLntqMzbGCJS7g7h1j4?p = preview

你可以看到它看起来很棒......但是有一个主要的缺陷.将idname属性不被转移.其中,你知道,没有name,它没有发布到服务器(这种形式绑定到现有系统,所以AJAXing模型不是一个选项).

例如,这是我开始的:

<select class="my-select irrelevant-class" name="reason" id="reason" data-anything="banana">
    <option value="">Reason for Contact...</option>
    <option>Banana</option>
    <option>Pizza</option>
    <option>The good stuff</option>
    <option>This is an example of a really, really, really, really, really, really long option item</option>
</select>
Run Code Online (Sandbox Code Playgroud)

......这就是我想要的样子:

<div class="faux-select" ng-class="{ placeholder: default == viewVal, focus: obj.focus }">
    <span class="faux-value">{{viewVal}}</span>
    <span class="icon-arrow-down"></span>
    <select ng-model="val" ng-focus="obj.focus = true" ng-blur="obj.focus = false" ng-transclude class="my-select irrelevant-class" name="reason" id="reason" data-anything="banana"> …
Run Code Online (Sandbox Code Playgroud)

angularjs

11
推荐指数
1
解决办法
9519
查看次数

将绑定传递给组件中的transcluded范围

在AngularJS 1.5中,我想将一个组件的绑定传递给(多槽)转换范围 - 用于模板中的引用(在一个特定的或全部的中 - 没有任何方法可以).

这用于创建通用自定义选择列表

// Component
.component('mySelect', { 
   bind: { 
       collection: '<'
   },
   transclude:{
      header: 'mySelectHeader',
      item: 'mySelectItem'
   },
   templateUrl: 'my-select-template',
   controller: function(){
       ..... 
   }
});

...
// Component template
<script id="my-select-template" type="text/ng-template">
<ol>
  <li ng-transclude="header"> </li>
  <li ng-transclude="item"
      ng-click="$ctrl.select($item)"
      ng-repeat"$item in $ctrl.collection">
  </li>
</ol>
</script>

...
// Example usage
<my-select collection="[{id: 1, name: "John"}, {id: 2, name: "Erik"}, ... ]>
   <my-select-head></my-select-head>

   <!-- Reference to $item from ng-repeate="" in component  -->
   <my-select-item>{{$item.id}}: {{$item.name}}</my-select-item>

</my-select>
Run Code Online (Sandbox Code Playgroud)

这是可能的.component()吗?使用自定义指令 …

web-component angularjs transclusion angularjs-directive angularjs-scope

9
推荐指数
1
解决办法
4615
查看次数

使用 Jest 测试 NestJS + TypeORM 时“‘instanceof’的右侧不是对象”

我有一个正在运行的 NestJS 服务器,它执行一些 TypeORMrepository.insert()命令。然而,当从 Jest 测试运行相同的操作时(使用@nestjs/testing's )Test.createTestingModule(...),会出现臭名昭著的Right-hand side of 'instanceof' is not an object情况。

查看更多详细信息,这似乎是由于 TypeORM 中发生的一些动态加载造成的QueryBuilder

// loading it dynamically because of circular issue
const InsertQueryBuilderCls = require("./InsertQueryBuilder").InsertQueryBuilder;
Run Code Online (Sandbox Code Playgroud)

该行在运行 NestJS 服务器时成功,但在运行 Jest 测试时失败。进一步来说:

  • 在 NestJS 服务器中:QueryBuilderrequire("./InsertQueryBuilder")返回一个包含 a 的 ES 模块InsertQueryBuilder。在这里设置断点时,奇怪的是,调试文件出现位于src/query-builder/QueryBuilder.ts(它不存在,应该是node_modules/typeorm/query-builder/QueryBuilder.js),但是成功了。
  • 在 Jest 测试中:require("./InsertQueryBuilder")返回一个空对象,因此它实际上InsertQueryBuilder不是undefined一个对象。调试后的文件符合预期node_modules/typeorm/query-builder/QueryBuilder.js,但失败了。

我看起来这可能与我的 Jest 配置有关,即:

module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'node', …
Run Code Online (Sandbox Code Playgroud)

jestjs typeorm nestjs ts-jest

7
推荐指数
0
解决办法
2788
查看次数

AngularJS指令转换部件绑定

我想在transcluded部分中使用指令,转换内容和调用指令的控制器方法:

<mydirective>
  <div ng-click='foo()'>
    click me
  </div>
</mydirective>


app.directive "mydirective", ->

  return {
    restrict:  'EACM',
    transclude: true
    template: "<div ng-transclude></div>"
    scope: { } #required: I use two way binding on some variable, but it's not the question here

    controller: [ '$scope', ($scope)->
      $scope.foo = -> console.log('foo')
    ]
  }
Run Code Online (Sandbox Code Playgroud)

plunkr在这里.

我该怎么办?

angularjs angularjs-directive

5
推荐指数
1
解决办法
3616
查看次数