construction: Dual-builds for node and browser
This commit is contained in:
parent
d74ceaf9f2
commit
1f33804778
12 changed files with 7560 additions and 35 deletions
1
packages/brian/dist/browser/bundle.js
vendored
Normal file
1
packages/brian/dist/browser/bundle.js
vendored
Normal file
File diff suppressed because one or more lines are too long
9
packages/brian/dist/browser/index.html
vendored
Normal file
9
packages/brian/dist/browser/index.html
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Webpack App</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" src="bundle.js"></script></body>
|
||||||
|
</html>
|
3
packages/brian/dist/node/browser.js
vendored
Normal file
3
packages/brian/dist/node/browser.js
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var data = 'Hello World';
|
31
packages/brian/dist/node/index.js
vendored
Normal file
31
packages/brian/dist/node/index.js
vendored
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var _freesewing = require('freesewing');
|
||||||
|
|
||||||
|
var _freesewing2 = _interopRequireDefault(_freesewing);
|
||||||
|
|
||||||
|
var _config = require('../config/config');
|
||||||
|
|
||||||
|
var patternConfig = _interopRequireWildcard(_config);
|
||||||
|
|
||||||
|
var _pattern = require('freesewing/dist/lib/pattern');
|
||||||
|
|
||||||
|
var _back = require('./lib/back');
|
||||||
|
|
||||||
|
var _back2 = _interopRequireDefault(_back);
|
||||||
|
|
||||||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
var brian = new _freesewing2.default.pattern(patternConfig);
|
||||||
|
|
||||||
|
brian.draft = function () {
|
||||||
|
var final = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
||||||
|
|
||||||
|
_back2.default.draft(brian, final);
|
||||||
|
|
||||||
|
return brian;
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = brian;
|
57
packages/brian/dist/node/lib/back.js
vendored
Normal file
57
packages/brian/dist/node/lib/back.js
vendored
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
|
||||||
|
var _freesewing = require('freesewing');
|
||||||
|
|
||||||
|
var _freesewing2 = _interopRequireDefault(_freesewing);
|
||||||
|
|
||||||
|
var _pattern = require('freesewing/dist/lib/pattern');
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
var backBlock = {
|
||||||
|
draft: function draft(pattern) {
|
||||||
|
var final = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
||||||
|
|
||||||
|
|
||||||
|
// Save some typing
|
||||||
|
var measurements = pattern.settings.measurements || {};
|
||||||
|
var options = pattern.options;
|
||||||
|
var values = pattern.values;
|
||||||
|
var points = pattern.parts.backBlock.points;
|
||||||
|
var paths = pattern.parts.backBlock.paths;
|
||||||
|
var F = _freesewing2.default;
|
||||||
|
|
||||||
|
// Center back (cb) vertical axis
|
||||||
|
points.cbNeck = new F.point(0, options.backNeckCutout);
|
||||||
|
points.cbShoulder = new F.point(0, points.cbNeck.y + (measurements.shoulderSlope - options.shoulderSlopeReduction) / 2);
|
||||||
|
points.cbArmhole = new F.point(0, points.cbShoulder.y + (measurements.bicepsCircumference + options.bicepsEase) * options.armholeDepthFactor);
|
||||||
|
points.cbWaist = new F.point(0, measurements.centerBackNeckToWaist + options.backNeckCutout);
|
||||||
|
points.cbHips = new F.point(0, points.cbWaist.y + measurements.naturalWaistToHip);
|
||||||
|
|
||||||
|
// Side back (cb) vertical axis
|
||||||
|
points.armhole = new F.point(measurements.chestCircumference / 4 + options.chestEase / 4, points.cbArmhole.y);
|
||||||
|
points.waist = new F.point(points.armhole.x, points.cbWaist.y);
|
||||||
|
points.hips = new F.point(points.armhole.x, points.cbHips.y);
|
||||||
|
|
||||||
|
// Shoulder line
|
||||||
|
points.neck = new F.point(measurements.neckCircumference / options.collarFactor, 0);
|
||||||
|
points.shoulder = new F.point(measurements.shoulderToShoulder / 2 + options.shoulderEase / 2, points.cbShoulder.y);
|
||||||
|
|
||||||
|
// Armhhole
|
||||||
|
points.armholePitch = new F.point(measurements.shoulderToShoulder * options.acrossBackFactor / 2, points.armhole.y / 2 - points.shoulder.y / 2);
|
||||||
|
points._tmp1 = new F.point(points.armholePitch.x, points.armhole.y);
|
||||||
|
points._tmp2 = points._tmp1.shift(45, 10);
|
||||||
|
points._tmp3 = F.utils.beamsCross(points._tmp1, points._tmp2, points.armhole, points.armholePitch);
|
||||||
|
points.armholeHollow = points._tmp1.shiftFractionTowards(points._tmp3, 0.5);
|
||||||
|
|
||||||
|
paths.test = new F.path().move(points.cbNeck).line(points.armhole).line(points.cbHips).line(points.hips).curve(points.neck, points.shoulder, points.armholePitch);
|
||||||
|
|
||||||
|
points.gridAnchor = points.cbHips;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.default = backBlock;
|
45
packages/brian/dist/node/main.js
vendored
Normal file
45
packages/brian/dist/node/main.js
vendored
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
|
||||||
|
var _freesewing = require('freesewing');
|
||||||
|
|
||||||
|
var _freesewing2 = _interopRequireDefault(_freesewing);
|
||||||
|
|
||||||
|
var _config = require('../config/config');
|
||||||
|
|
||||||
|
var patternConfig = _interopRequireWildcard(_config);
|
||||||
|
|
||||||
|
var _pattern = require('freesewing/dist/lib/pattern');
|
||||||
|
|
||||||
|
var _back = require('./lib/back');
|
||||||
|
|
||||||
|
var _back2 = _interopRequireDefault(_back);
|
||||||
|
|
||||||
|
var _models = require('@freesewing/models');
|
||||||
|
|
||||||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
var brian = new _freesewing2.default.pattern(patternConfig);
|
||||||
|
|
||||||
|
brian.draft = function () {
|
||||||
|
var final = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
||||||
|
|
||||||
|
_back2.default.draft(brian, final);
|
||||||
|
|
||||||
|
return brian;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.default = brian;
|
||||||
|
|
||||||
|
// This is not for inclusion in production
|
||||||
|
|
||||||
|
console.log(_models.manSize38);
|
||||||
|
brian.settings.measurements = _models.manSize38;
|
||||||
|
|
||||||
|
brian.draft();
|
||||||
|
console.log(brian.parts.backBlock.points);
|
7347
packages/brian/package-lock.json
generated
7347
packages/brian/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -2,12 +2,15 @@
|
||||||
"name": "@freesewing/brian",
|
"name": "@freesewing/brian",
|
||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
"description": "A basic body block for menswear",
|
"description": "A basic body block for menswear",
|
||||||
"main": "dist/main.js",
|
"main": "dist/node/index.js",
|
||||||
|
"unpkg": "dist/browser/bundle.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
"build": "babel src -d dist",
|
"nodebuild": "babel src -d dist/node",
|
||||||
"watch": "babel-watch src/main.js",
|
"browserbuild": "npx webpack-cli --config webpack.config.js",
|
||||||
"run": "nodemon node dist/main.js"
|
"watch": "babel-watch src/index.js",
|
||||||
|
"run": "nodemon node dist/node/index.js",
|
||||||
|
"dev": "webpack-dev-server --open"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -23,9 +26,16 @@
|
||||||
"freesewing": "^0.3.0"
|
"freesewing": "^0.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@babel/core": "7.0.0-beta.53",
|
||||||
|
"@babel/preset-env": "7.0.0-beta.53",
|
||||||
"@freesewing/models": "0.1.1",
|
"@freesewing/models": "0.1.1",
|
||||||
"babel-cli": "6.26.0",
|
"babel-cli": "6.26.0",
|
||||||
|
"babel-loader": "8.0.0-beta.4",
|
||||||
"babel-preset-env": "1.7.0",
|
"babel-preset-env": "1.7.0",
|
||||||
"babel-watch": "2.0.7"
|
"babel-watch": "2.0.7",
|
||||||
|
"html-webpack-plugin": "3.2.0",
|
||||||
|
"webpack": "4.16.0",
|
||||||
|
"webpack-cli": "3.0.8",
|
||||||
|
"webpack-dev-server": "3.1.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
14
packages/brian/src/index.js
Normal file
14
packages/brian/src/index.js
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
import freesewing from 'freesewing'
|
||||||
|
import * as patternConfig from '../config/config'
|
||||||
|
import { Pattern } from 'freesewing/dist/lib/pattern'
|
||||||
|
import backBlock from './lib/back'
|
||||||
|
|
||||||
|
var brian = new freesewing.pattern(patternConfig);
|
||||||
|
|
||||||
|
brian.draft = function(final = true) {
|
||||||
|
backBlock.draft(brian, final);
|
||||||
|
|
||||||
|
return brian;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = brian;
|
|
@ -1,4 +1,4 @@
|
||||||
import F from 'freesewing'
|
import freesewing from 'freesewing'
|
||||||
import { Pattern } from 'freesewing/dist/lib/pattern'
|
import { Pattern } from 'freesewing/dist/lib/pattern'
|
||||||
|
|
||||||
var backBlock = {
|
var backBlock = {
|
||||||
|
@ -10,6 +10,7 @@ var backBlock = {
|
||||||
let values = pattern.values;
|
let values = pattern.values;
|
||||||
let points = pattern.parts.backBlock.points;
|
let points = pattern.parts.backBlock.points;
|
||||||
let paths = pattern.parts.backBlock.paths;
|
let paths = pattern.parts.backBlock.paths;
|
||||||
|
let F = freesewing;
|
||||||
|
|
||||||
// Center back (cb) vertical axis
|
// Center back (cb) vertical axis
|
||||||
points.cbNeck = new F.point(0, options.backNeckCutout);
|
points.cbNeck = new F.point(0, options.backNeckCutout);
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
import F from 'freesewing'
|
|
||||||
import * as patternConfig from '../config/config'
|
|
||||||
import { Pattern } from 'freesewing/dist/lib/pattern'
|
|
||||||
import backBlock from './lib/back'
|
|
||||||
import { manSize38 } from '@freesewing/models'
|
|
||||||
|
|
||||||
var brian = new F.pattern(patternConfig);
|
|
||||||
|
|
||||||
brian.draft = function(final = true) {
|
|
||||||
backBlock.draft(brian, final);
|
|
||||||
|
|
||||||
return brian;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default brian;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// This is not for inclusion in production
|
|
||||||
|
|
||||||
console.log(manSize38);
|
|
||||||
brian.settings.measurements = manSize38;
|
|
||||||
|
|
||||||
brian.draft();
|
|
||||||
console.log(brian.parts.backBlock.points);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
36
packages/brian/webpack.config.js
Normal file
36
packages/brian/webpack.config.js
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
const path = require('path');
|
||||||
|
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
mode: 'production',
|
||||||
|
target: 'web',
|
||||||
|
entry: './src/index.js',
|
||||||
|
output: {
|
||||||
|
path: path.resolve(__dirname, 'dist/browser'),
|
||||||
|
filename: 'bundle.js',
|
||||||
|
libraryTarget: 'var',
|
||||||
|
library: 'brian'
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
rules:[
|
||||||
|
{
|
||||||
|
test: /\.js$/,
|
||||||
|
exclude: /node_modules/,
|
||||||
|
use: {
|
||||||
|
loader: 'babel-loader',
|
||||||
|
options: {
|
||||||
|
presets: ['@babel/preset-env']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
externals: {
|
||||||
|
// require('data') is external and available
|
||||||
|
// on the global var data
|
||||||
|
'data': 'data'
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
new HtmlWebpackPlugin()
|
||||||
|
]
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue