소스 검색

dont generate esm bundle anymore and link to src/main.js directly. Move bower to its own repo

rename makeNode back to create
tags/3.0.0
Ulrich-Matthias Schäfer 5 년 전
부모
커밋
637039fbde
9개의 변경된 파일43개의 추가작업 그리고 75개의 파일을 삭제
  1. 22
    30
      .config/rollup.config.js
  2. 3
    3
      .config/rollup.tests.js
  3. 1
    7
      .gitignore
  4. 0
    21
      bower.json
  5. 6
    3
      package.json
  6. 2
    2
      spec/spec/svg.js
  7. 4
    4
      spec/spec/utils/adopter.js
  8. 2
    2
      src/elements/Dom.js
  9. 3
    3
      src/utils/adopter.js

+ 22
- 30
.config/rollup.config.js 파일 보기

@@ -21,13 +21,13 @@ const headerLong = `/*!

const headerShort = `/*! ${pkg.name} v${pkg.version} ${pkg.license}*/;`

const getBabelConfig = (esm, targets = { esmodules: true }, corejs = false) => babel({
const getBabelConfig = (targets, corejs = false) => babel({
include: 'src/**',
runtimeHelpers: true,
babelrc: false,
presets: [['@babel/preset-env', {
modules: false,
targets: esm ? targets : pkg.browserslist,
targets: targets || pkg.browserslist,
useBuiltIns: 'usage'
}]],
plugins: [['@babel/plugin-transform-runtime', {
@@ -70,21 +70,29 @@ const classes = [
'Use'
]

const config = esm => ({
input: esm ? './src/main.js' : './src/svg.js',
const config = (node, min) => ({
input: node ? './src/main.js' : './src/svg.js',
output: {
file: esm ? './dist/svg.js' : './dist/svg.min.js',
file: node ? './dist/svg.node.js'
: min ? './dist/svg.min.js'
: './dist/svg.js',
format: node ? 'cjs' : 'iife',
name: 'SVG',
sourcemap: 'external',
format: esm ? 'esm' : 'iife',
banner: esm ? headerLong : headerShort
sourcemap: true,
banner: headerLong,
// remove Object.freeze
freeze: false
},
treeshake: {
// property getter have no sideeffects
propertyReadSideEffects: false
},
plugins: [
resolve({ browser: true }),
resolve({ browser: !node }),
commonjs(),
getBabelConfig(esm),
getBabelConfig(node && 'maintained node versions'),
filesize(),
esm ? {} : uglify({
!min ? {} : uglify({
mangle: {
reserved: classes
},
@@ -95,23 +103,7 @@ const config = esm => ({
]
})

const nodeConfig = () => ({
input: './src/main.js',
output: {
file: './dist/svg.node.js',
name: 'SVG',
sourcemap: 'external',
format: 'cjs',
banner: headerLong
},
plugins: [
resolve(),
commonjs(),
getBabelConfig(true, 'maintained node versions'),
filesize()
]
})

const modes = [true, false]
// [node, minified]
const modes = [[false], [false, true], [true]]

export default modes.map(config).concat(nodeConfig())
export default modes.map(m => config(...m))

rollup.tests.js → .config/rollup.tests.js 파일 보기

@@ -14,9 +14,9 @@ export default {
include: 'src/**',
runtimeHelpers: true,
babelrc: false,
presets: [["@babel/preset-env", {
modules: false,
}]],
presets: [['@babel/preset-env', {
modules: false
}]]
// plugins: [["@babel/plugin-transform-runtime", {
// corejs: false,
// helpers: true,

+ 1
- 7
.gitignore 파일 보기

@@ -1,16 +1,10 @@
.DS_Store
.idea
.importjs.js
public
site/
bleed/
docs/
obsolete/
test/
src/index.js
node_modules/
.vscode/
coverage/
fonts/
spec/es5TestBundle.js
.env
dist

+ 0
- 21
bower.json 파일 보기

@@ -1,21 +0,0 @@
{
"name": "svg.js",
"homepage": "https://svgdotjs.github.io/",
"authors": [
"Wout Fierens <wout@mick-wout.com>",
"Ulrich-Matthias Schäfer <ulima.ums@googlemail.com>",
"Jon Ege Ronnenberg <jon.ronnenberg+svgjs@gmail.com>"
],
"description": "A lightweight library for manipulating and animating SVG",
"main": "dist/svg.min.js",
"keywords": [
"svg", "vector", "graphics"
],
"license": "MIT",
"ignore": [
"**/.*",
"spec/",
"src/",
"gulpfile.js"
]
}

+ 6
- 3
package.json 파일 보기

@@ -15,7 +15,7 @@
"unpkg": "dist/svg.min.js",
"jsdelivr": "dist/svg.min.js",
"browser": "dist/svg.min.js",
"module": "dist/svg.js",
"module": "src/main.js",
"maintainers": [
{
"name": "Wout Fierens",
@@ -53,7 +53,7 @@
"scripts": {
"build": "npm run fix && npm run rollup",
"build:polyfills": "npx rollup -c .config/rollup.polyfills.js",
"build:tests": "npx rollup -c rollup.tests.js",
"build:tests": "npx rollup -c .config/rollup.tests.js",
"fix": "npx eslint ./src --fix",
"lint": "eslint ./src",
"rollup": "rollup -c .config/rollup.config.js",
@@ -62,8 +62,11 @@
"test:ci": "karma start .config/karma.conf.saucelabs.js",
"test:svgdom": "node -r esm ./spec/runSVGDomTest.js || true",
"test:es6": "npx karma start .config/karma.es6.js --single-run",
"bower:copy": "cp ../svg.js/LICENSE ../svg.js/README.md ../svg.js/dist/svg.js ../svg.js/dist/svg.min.js ../svg.js/dist/polyfills.js ../svg.js/dist/polyfillsIE.js .",
"bower:tag": "git add -- LICENSE README.md svg.js svg.min.js && git commit -m \"${npm_package_version}\" && git tag -am \"${npm_package_version}\" v${npm_package_version} && git push && git push --tags",
"zip": "zip -j dist/svg.js.zip -- LICENSE README.md API.md CHANGELOG.md dist/svg.js.js dist/svg.min.js dist/polyfills.js dist/polyfillsIE.js",
"prepublishOnly": "npm run build && npm run build:polyfills && npm test",
"postPublish": "echo Please upload a zip to the github release containing the dist, license and changelog"
"postpublish": "git push && git push --tags && cd ../svg.js-bower && git pull && npm run bower:copy && npm run bower:tag && cd ../svg.js && npm run zip"
},
"devDependencies": {
"@babel/core": "^7.1.2",

+ 2
- 2
spec/spec/svg.js 파일 보기

@@ -80,9 +80,9 @@ describe('SVG', function() {
})
})

describe('makeNode()', function() {
describe('create()', function() {
it('creates an element with given node name and return it', function() {
var element = SVG.makeNode('rect')
var element = SVG.create('rect')

expect(element.nodeName).toBe('rect')
})

+ 4
- 4
spec/spec/utils/adopter.js 파일 보기

@@ -1,7 +1,7 @@
const { any, createSpy, objectContaining } = jasmine

import {
makeNode,
create,
makeInstance,
nodeOrNew,
register,
@@ -26,9 +26,9 @@ describe('Adopter.js', () => {
Node = globals.window.Node
})

describe('makeNode()', () => {
describe('create()', () => {
it('creates a node of the specified type', () => {
let rect = makeNode('rect')
let rect = create('rect')
expect(rect).toEqual(any(Node))
expect(rect.nodeName).toBe('rect')
})
@@ -79,7 +79,7 @@ describe('Adopter.js', () => {
})

it('calls adopt when passed a node', () => {
makeInstance(makeNode('rect'))
makeInstance(create('rect'))

expect(adoptSpy).toHaveBeenCalledWith(any(Node))
expect(adoptSpy).toHaveBeenCalledWith(objectContaining({nodeName: 'rect'}))

+ 2
- 2
src/elements/Dom.js 파일 보기

@@ -4,7 +4,7 @@ import {
eid,
extend,
makeInstance,
makeNode,
create,
register
} from '../utils/adopter.js'
import { find } from '../modules/core/selector.js'
@@ -90,7 +90,7 @@ export default class Dom extends EventTarget {
}

element (nodeName) {
return this.put(new Dom(makeNode(nodeName)))
return this.put(new Dom(create(nodeName)))
}

// Get first child

+ 3
- 3
src/utils/adopter.js 파일 보기

@@ -8,7 +8,7 @@ const elements = {}
export const root = '___SYMBOL___ROOT___'

// Method for element creation
export function makeNode (name) {
export function create (name) {
// create element
return globals.document.createElementNS(ns, name)
}
@@ -28,7 +28,7 @@ export function makeInstance (element) {
return adopter(globals.document.querySelector(element))
}

var node = makeNode('svg')
var node = create('svg')
node.innerHTML = element

// We can use firstChild here because we know,
@@ -39,7 +39,7 @@ export function makeInstance (element) {
}

export function nodeOrNew (name, node) {
return node instanceof globals.window.Node ? node : makeNode(name)
return node instanceof globals.window.Node ? node : create(name)
}

// Adopt existing svg elements

Loading…
취소
저장