project-cfg
Advanced tools
Comparing version 0.0.7 to 0.0.8
@@ -26,3 +26,3 @@ module.exports = { | ||
`{ | ||
test: /\.jsx/, | ||
test: /\.jsx$/, | ||
use: [{ | ||
@@ -32,3 +32,11 @@ loader: 'babel-loader' | ||
exclude: /node_modules/ | ||
}`, | ||
BABEL: | ||
`{ | ||
test: /\.js$/, | ||
use: [{ | ||
loader: 'babel-loader' | ||
}], | ||
exclude: /node_modules/ | ||
}` | ||
}; |
@@ -20,4 +20,5 @@ module.exports = { | ||
'style-loader': 'style-loader', | ||
'sass-loader': 'sass-loader' | ||
'sass-loader': 'sass-loader', | ||
'node-sass': 'node-sass' | ||
} | ||
}; |
@@ -5,7 +5,7 @@ module.exports = { | ||
'.js' | ||
`, | ||
`, | ||
JSX: | ||
` | ||
'.jsx' | ||
` | ||
` | ||
}; |
@@ -26,3 +26,3 @@ /* | ||
resolve: { | ||
modules: [ | ||
extensions: [ | ||
//start resolve | ||
@@ -29,0 +29,0 @@ //end resolve |
@@ -26,3 +26,3 @@ /* | ||
resolve: { | ||
modules: [ | ||
extensions: [ | ||
//start resolve | ||
@@ -29,0 +29,0 @@ //end resolve |
@@ -34,3 +34,3 @@ const path = require('path'); | ||
output.npm = npm; | ||
}).then(() => { | ||
return this.babelLoader.load(); | ||
@@ -37,0 +37,0 @@ }).then((babeljs) => { |
const path = require('path'); | ||
const FileHelper = require('../../utils/FileHelper'); | ||
const normalize = require('../../utils/normalize'); | ||
const CONFIG_PATH = path.join(process.cwd(), 'package.json'); | ||
@@ -9,4 +10,9 @@ | ||
return JSON.parse(data.toString()); | ||
}).catch(() => { | ||
return Promise.resolve({ | ||
name: normalize.snakeCase( path.basename(process.cwd()) ), | ||
license: 'ISC' | ||
}); | ||
}); | ||
} | ||
}; |
const path = require('path'); | ||
const FileHelper = require('../../utils/FileHelper'); | ||
const normalize = require('../../utils/normalize'); | ||
const CONFIG_PATH = path.join(process.cwd(), 'package.json'); | ||
@@ -7,4 +8,12 @@ | ||
save(config, globalConfig) { | ||
if(!config.name) { | ||
config.name = normalize.snakeCase( path.basename(process.cwd()) ); | ||
} | ||
if(!config.license) { | ||
config.license = 'ISC'; | ||
} | ||
return FileHelper.save(CONFIG_PATH, JSON.stringify(config, null, "\t")); | ||
} | ||
}; |
@@ -8,2 +8,3 @@ const path = require('path'); | ||
const RESOLVE = require('../../../const/resolve'); | ||
const OUTPUT = require('../../../const/output'); | ||
const StringUtils = require('../../../utils/StringUtils'); | ||
@@ -21,2 +22,3 @@ | ||
managePackage('sass-loader', config.sass); | ||
managePackage('node-sass', config.sass); | ||
@@ -31,20 +33,11 @@ | ||
}).then((data) => { | ||
let loaders = (config.css || config.sass) ? LOADERS.CSS_STYLE + ',' : ''; | ||
loaders += config.sass ? LOADERS.SASS_STYLE + ',' : ''; | ||
loaders += config.jsx ? LOADERS.JSX + ',' : ''; | ||
data = appendConfigData(data, config, es6Enabled); | ||
loaders = StringUtils.removeLast(loaders); | ||
return saveWebpackConfigFile('dev', es6Enabled, data); | ||
}).then(() => { | ||
return loadWebpackConfigFile('prod', es6Enabled); | ||
}).then((data) => { | ||
data = appendConfigData(data, config, es6Enabled, true); | ||
let entry = "\n\t\t\t'src/index.js'\n\t\t"; | ||
let resolve = RESOLVE.JS + ','; | ||
resolve += config.jsx ? RESOLVE.JSX + ',' : ''; | ||
resolve = StringUtils.removeLast(resolve); | ||
data = data.toString().replace(/(\/\/start rules)([\s\S]+?)(\/\/end rules)/gi, `$1\n\t\t\t${loaders}\n\t\t$3`); | ||
data = data.toString().replace(/(\/\/start resolve)([\s\S]+?)(\/\/end resolve)/gi, `$1${resolve}$3`); | ||
data = data.toString().replace(/(\/\/start entries)([\s\S]+?)(\/\/end entries)/gi, `$1${entry}$3`); | ||
return saveWebpackConfigFile('dev', es6Enabled, data); | ||
return saveWebpackConfigFile('prod', es6Enabled, data); | ||
}); | ||
@@ -60,3 +53,36 @@ } else { | ||
function appendConfigData(data, config, es6Enabled, production) { | ||
"use strict"; | ||
let importArray = []; | ||
if(es6Enabled) { | ||
importArray.push('import path from \'path\';'); | ||
} else { | ||
importArray.push('const path = require(\'path\')'); | ||
} | ||
let importString = importArray.join("\n"); | ||
let loaders = (config.css || config.sass) ? LOADERS.CSS_STYLE + ',' : ''; | ||
loaders += config.sass ? LOADERS.SASS_STYLE + ',' : ''; | ||
loaders += config.jsx ? LOADERS.JSX + ',' : ''; | ||
loaders += es6Enabled ? LOADERS.BABEL + ',' : ''; | ||
loaders = StringUtils.removeLast(loaders); | ||
let entry = "\n\t\t\t'./src/index.js'\n\t\t"; | ||
let resolve = RESOLVE.JS + ','; | ||
resolve += config.jsx ? RESOLVE.JSX + ',' : ''; | ||
resolve = StringUtils.removeLast(resolve); | ||
let output = OUTPUT.DEFAULT; | ||
data = data.toString().replace(/(\/\/start imports)([\s\S]+?)(\/\/end imports)/gi, `$1\n${importString}\n$3`); | ||
data = data.toString().replace(/(\/\/start rules)([\s\S]+?)(\/\/end rules)/gi, `$1\n\t\t\t${loaders}\n\t\t\t$3`); | ||
data = data.toString().replace(/(\/\/start resolve)([\s\S]+?)(\/\/end resolve)/gi, `$1${resolve}$3`); | ||
data = data.toString().replace(/(\/\/start entries)([\s\S]+?)(\/\/end entries)/gi, `$1${entry}$3`); | ||
data = data.toString().replace(/(\/\/start output)([\s\S]+?)(\/\/end output)/gi, `$1${output}$3`); | ||
return data; | ||
} | ||
function loadWebpackConfigFile(type, useEs6) { | ||
@@ -63,0 +89,0 @@ let webpack = path.join(process.cwd(), 'webpack'); |
@@ -79,8 +79,13 @@ const path = require('path'); | ||
if(body.webpack.enabled && body.webpack.devServer) { | ||
if(body.webpack.enabled) { | ||
npmConfig.npm.scripts = npmConfig.npm.scripts || {}; | ||
let webpackDev = `./webpack/dev.webpack.${useEs6 ? 'babel.js' : 'js'}`; | ||
if(body.webpack.devServer) { | ||
let webpackDev = `./webpack/dev.webpack.${useEs6 ? 'babel.js' : 'js'}`; | ||
npmConfig.npm.scripts.start = `webpack-dev-server --colors --progress --config ${webpackDev} --host 0.0.0.0`; | ||
npmConfig.npm.scripts.start = `webpack-dev-server --colors --progress --config ${webpackDev} --host 0.0.0.0`; | ||
} | ||
let webpack = `./webpack/prod.webpack.${useEs6 ? 'babel.js' : 'js'}`; | ||
npmConfig.npm.scripts.build = `webpack -p --colors --progress --config ${webpack}`; | ||
} | ||
@@ -87,0 +92,0 @@ |
{ | ||
"name": "project-cfg", | ||
"version": "0.0.7", | ||
"version": "0.0.8", | ||
"description": "A helper-package for generating project structures.", | ||
@@ -5,0 +5,0 @@ "bin": { |
@@ -0,1 +1,4 @@ | ||
[![npm](https://img.shields.io/npm/v/project-cfg.svg?style=flat-square)](https://www.npmjs.com/package/project-cfg/) | ||
[![npm](https://img.shields.io/npm/l/project-cfg.svg?style=flat-square)](https://gitlab.com/michaelsoftware/project-cfg/blob/master/LICENSE) | ||
# project-cfg # | ||
@@ -2,0 +5,0 @@ This package helps you to configure your babel/webpack-project. |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
605319
38
1089
28