var gulp = require('gulp');
var sass = require('gulp-sass');
var runSequence = require('run-sequence');
var changed = require('gulp-changed');
var plumber = require('gulp-plumber');
var to5 = require('gulp-babel');
var sourcemaps = require('gulp-sourcemaps');
var paths = require('../paths');
var compilerOptions = require('../babel-options');
var assign = Object.assign || require('object.assign');
// transpiles changed es6 files to SystemJS format
// the plumber() call prevents 'pipe breaking' caused
// by errors from other gulp plugins
// https://www.npmjs.com/package/gulp-plumber
gulp.task('build-system', function () {
return gulp.src(paths.source)
.pipe(plumber())
.pipe(changed(paths.output, {extension: '.js'}))
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(to5(assign({}, …Run Code Online (Sandbox Code Playgroud)1)它是克隆回购还是从版本拉出来?据我所知,它是从版本中提取的.
2)可以通过选项覆盖它,就像为特定版本指定@version一样.即我想从发布分支中提取特定的zip或者只是克隆repo
我问的原因是,让我们看看https://github.com/Dogfalo/materialize/releases看看v 0.96.0,你可以看到它有4个不同的发布zip文件,jspm怎么知道哪个得到?
我开始为materialize编写一个覆盖并将其添加到jspm注册表但是我遇到了一个问题,对于我我想要整个repo,因为它除了css和js之外还包含sass文件,但是jspm当前的方式如果你使用这个命令jspm install materialize=github:dogfalo/materialize@0.96.0安装materialize,它会安装不包含sass文件的materialize-v0.96.0.zip发行版,而不是我想要的源代码zip或repo的克隆.
我尝试将jspm与reactjs一起使用.我工作得很好.但是当我从npm将它与flux软件包集成时.然后它总是抛出Dispatcher不是构造函数错误.我的代码如下
AppDispatcher.js
import Flux from 'flux';
export default new Flux.Dispatcher();Run Code Online (Sandbox Code Playgroud)
StoreBase.js
'use strict';
import {EventEmitter} from 'events';
import AppDispatcher from '../dispatchers/AppDispatcher';
const CHANGE_EVENT = 'change';
export default class BaseStore extends EventEmitter {
constructor() {
super();
}
subscribe(actionSubscribe) {
this._dispatchToken = AppDispatcher.register(actionSubscribe());
}
get dispatchToken() {
return this._dispatchToken;
}
emitChange() {
this.emit(CHANGE_EVENT);
}
addChangeListener(cb) {
this.on(CHANGE_EVENT, cb)
}
removeChangeListener(cb) {
this.removeListener(CHANGE_EVENT, cb);
}
}Run Code Online (Sandbox Code Playgroud)
我使用reactjs@0.13.3,al响-router@0.13.3和flux@2.0.3.有人可以帮我吗?
我有一个使用的角度1.5.5项目jspm获取和捆绑的所有前端的依赖- ,angular,,angular-material 等.angular-adalngcomponentrouter
我们正在使用npm:端点解析所有这些依赖项.当我们安装时会出现问题angular-material,因为它angular从github:angular/bower-angular(而不是npm:angular)拉入第二依赖.
这可以通过运行来复制:
jspm install npm:angular
jspm install npm:angular-material
Run Code Online (Sandbox Code Playgroud)
其中第二个命令输出:
Looking up npm:angular-material
Updating registry cache...
Downloading npm:angular-material@1.1.0-rc4-master-06e7e99
Looking up github:angular/bower-angular
Looking up github:angular/bower-angular-messages
Looking up github:systemjs/plugin-css
Looking up github:angular/bower-angular-animate
Looking up github:angular/bower-angular-aria
ok Installed github:angular/bower-angular-messages@^1.5.3 (1.5.5)
ok Installed github:angular/bower-angular@^1.5.3 (1.5.5)
ok Installed github:angular/bower-angular-aria@^1.5.3 (1.5.5)
ok Installed github:angular/bower-angular-animate@^1.5.3 (1.5.5)
Run Code Online (Sandbox Code Playgroud)
导致角度被我们的UI加载两次 - 一次来自wwwroot/lib/github/angular一次wwwroot/lib/npm/angular@1.5.5
我的问题是:
有没有办法强制angular只从一个源解决相同的依赖?如何确保仅加载角度1.5.5的单个依赖项?
我是Aurelia的新手,所以我不确定这应该如何运作.我创建了一个新的Aurelia项目,并且还bootstrap简单地安装了jspm install bootstrap.我在控制台看到这个也进来了jquery 3.0.0.
现在我的问题是,我如何使用bootstrap.css,bootstrap.js并jquery.js在我的项目中?
第一次尝试:
在app.html我试图做以下事情:
<require from="bootstrap"></require>
Run Code Online (Sandbox Code Playgroud)
我试过了,因为我的帖子中有以下内容config.js:
map: {
...
"bootstrap": "github:twbs/bootstrap@3.3.6",
...
}
Run Code Online (Sandbox Code Playgroud)
这种工作在它加载的意义上起作用bootstrap.js,但随后在浏览器中出现错误jquery.js.所以它不会自动为我加载jquery.这是正常的吗?
第二次尝试:
我改变了我require的意思app.html:
<require from="jquery/dist/jquery.js"></require>
<require from="bootstrap/css/bootstrap.css"></require>
<require from="bootstrap/js/bootstrap.js"></require>
Run Code Online (Sandbox Code Playgroud)
我不知道它是如何知道在哪里查找bootstrap.js和bootstrap.css文件,因为它们位于:jspm_packages/github/twbs/bootstrap@3.3.6/css/bootstrap.css等.但它知道如何找到引导程序文件.但不是 jquery文件.
我在config.jsjquery中有这个:
map: {
...
"github:twbs/bootstrap@3.3.6": {
"jquery": "npm:jquery@3.0.0"
},
....
}
Run Code Online (Sandbox Code Playgroud)
基本上我的问题是,这应该怎么做?我应该require自动加载所有必要的文件<require from="bootstrap">.或者我还应该将它们作为单个文件加载?如果是这样,我如何在这种情况下加载jquery?
我正在尝试使用jspm和systemjs将d3 v4导入到打字稿项目中.我可以使用这个正确导入d3
import * as d3 from 'd3';
Run Code Online (Sandbox Code Playgroud)
这有效,它允许我进行选择等.我尝试使用attr函数并传递一个不起作用的对象.我发现d3 v4包含了它作为一个单独的模块.
用jspm下载该模块d3-selection-multi后.我尝试将它导入我的项目中.
import * as d3 from 'd3';
import 'jspm_packages/npm/d3-selection-multi@1.0.0';
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用attrs功能,但控制台记录以下错误
(索引):40错误:(SystemJS)d3.selectAll(...).data(...).style(...).attrs不是函数(...)
我也得到一些编译错误,我一直得到,但他们仍然编译和代码运行
error TS2307: Cannot find module 'd3'
error TS1110: Type expected
Run Code Online (Sandbox Code Playgroud)
谁能解释我做错了什么并提供解决方案?
在此之后,我最近在新版本2.2.1上更新了打字稿,之后我开始在浏览器上收到此错误:
未捕获(承诺)错误:“未定义导出”
我注意到当.ts文件中有import语句时,打字稿在.js转储文件的开头“使用严格”之后添加了这一行。
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
Run Code Online (Sandbox Code Playgroud)
因此,我重新安装了以前的版本2.1.6,该行消失了,一切再次正常。
这是新版本的预期行为吗?我怎么能扔这个?
顺便说一下,我在JSPM中使用SystemJS
我跑了jspm install angular,它在本地安装到我的jspm_packages文件夹.
从代码中,我使用常规的ES6导入import angular from 'angular'.
如果CDN不可用,我需要做什么才能从CDN加载角度并回退到本地版本?
我尝试使用jspm和vue.js构建简单的应用程序.
这是我的html文件:
<html>
<head>
<script src="bundle.js"></script>
<!--script src="jspm_packages/npm/vue@2.1.10/dist/vue.min.js"></script-->
</head>
<body>
<div id="app">
{{ message }}
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的main.js文件:
import Vue from "vue"
const app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
});
Run Code Online (Sandbox Code Playgroud)
我正在构建这样的自执行包:
jspm bundle-sfx main.js bundle.js
Run Code Online (Sandbox Code Playgroud)
当我打开浏览器时,我可以看到该节点div#app被注释节点替换.
您还可以$el在Vue对象中看到注释节点:
当我从单独的文件中使用Vue时(例如从jspm文件下载jspm_packages/npm/vue@2.1.10/dist/vue.min.js),一切正常.
你可以看到这个问题在这个小提琴中重现(js是整个包):
https://jsfiddle.net/oz7c82rw/
我的代码出了什么问题?为什么dom节点呈现为空注释?
jspm ×10
systemjs ×4
aurelia ×3
javascript ×3
ecmascript-6 ×2
node.js ×2
typescript ×2
angularjs ×1
backbone.js ×1
d3.js ×1
gulp ×1
npm ×1
reactjs ×1
reactjs-flux ×1
sass ×1
vue.js ×1