+13
-5
| const gulp = require('gulp'); | ||
| const mocha = require('gulp-mocha'); | ||
| var source = require('vinyl-source-stream'); | ||
| var vinylBuffer = require('vinyl-buffer'); | ||
@@ -10,10 +12,16 @@ gulp.task('default', () => { | ||
| gulp.task('generate-ns', () => { | ||
| var source = require('vinyl-source-stream'); | ||
| var vinylBuffer = require('vinyl-buffer'); | ||
| var generateNSFile = require('./index').generateNSFile; | ||
| gulp.task('generate-js', () => { | ||
| var generateJsFile = require('./index').generateJsFile; | ||
| var stream = source('ns.js'); | ||
| stream.write(generateNSFile()); | ||
| stream.write(generateJsFile()); | ||
| stream.end(); | ||
| return stream.pipe(vinylBuffer()).pipe(gulp.dest('dist/')); | ||
| }); | ||
| gulp.task('generate-sass', () => { | ||
| var generateSassFile = require('./index').generateSassFile; | ||
| var stream = source('ns.scss'); | ||
| stream.write(generateSassFile('css-ns')); | ||
| stream.end(); | ||
| return stream.pipe(vinylBuffer()).pipe(gulp.dest('dist/')); | ||
| }); |
+13
-2
@@ -16,3 +16,3 @@ var path = require('path'); | ||
| function generateNSFile(packagePath) { | ||
| function generateJsFile(packagePath) { | ||
| var ns = generateNS(packagePath); | ||
@@ -22,5 +22,16 @@ return "module.exports = \"" + ns + "\";"; | ||
| function generateSassFile(packagePath, nsVarName) { | ||
| if(arguments.length === 1) { | ||
| nsVarName = packagePath; | ||
| packagePath = null; | ||
| } | ||
| if(!nsVarName) throw new Error('the nsVarName parameter isnot valid'); | ||
| var ns = generateNS(packagePath); | ||
| return '$' + nsVarName + ': ' + ns + ';'; | ||
| } | ||
| module.exports = { | ||
| generateNS: generateNS, | ||
| generateNSFile: generateNSFile | ||
| generateJsFile: generateJsFile, | ||
| generateSassFile: generateSassFile | ||
| }; |
+1
-1
| { | ||
| "name": "ns-gen", | ||
| "version": "0.2.0", | ||
| "version": "0.3.0", | ||
| "description": "The npm package namespace generator ", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
+43
-5
@@ -41,3 +41,3 @@ This repository is the namespace generator. | ||
| ### Generate the namespace file | ||
| ### Generate the namespace javascript file | ||
@@ -48,4 +48,4 @@ You also can generate the js file that the other js can require it. | ||
| var fs = require('fs'); | ||
| var generateNSFile = require('ns-gen').generateNSFile; | ||
| fs.writeFileSync('ns.js', generateNSFile()); | ||
| var generateJsFile = require('ns-gen').generateJsFile; | ||
| fs.writeFileSync('ns.js', generateJsFile()); | ||
| ``` | ||
@@ -58,7 +58,7 @@ | ||
| var vinylBuffer = require('vinyl-buffer'); | ||
| var generateNSFile = require('ns-gen').generateNSFile; | ||
| var generateJsFile = require('ns-gen').generateJsFile; | ||
| gulp.task('generate-ns', () => { | ||
| var stream = source('ns.js'); | ||
| stream.write(generateNSFile()); | ||
| stream.write(generateJsFile()); | ||
| stream.end(); | ||
@@ -90,2 +90,40 @@ return stream.pipe(vinylBuffer()).pipe(gulp.dest('dist/')); | ||
| ### Generate the sass file | ||
| The process of scss file generation is like the js file. | ||
| You can use the simple nodejs script to generate it. | ||
| ```js | ||
| var fs = require('fs'); | ||
| var generateSassFile = require('ns-gen').generateSassFile; | ||
| fs.writeFileSync('ns.sass', generateJsFile('css-ns')); | ||
| ``` | ||
| Or use the gulp task to generate it. | ||
| ```js | ||
| gulp.task('generate-sass', () => { | ||
| var generateSassFile = require('ns-gen').generateSassFile; | ||
| var stream = source('ns.scss'); | ||
| stream.write(generateSassFile('css-ns')); | ||
| stream.end(); | ||
| return stream.pipe(vinylBuffer()).pipe(gulp.dest('dist/')); | ||
| }); | ||
| ``` | ||
| Then the generated sass file is like this: | ||
| ```css | ||
| $css-ns: package-name-version-hash; | ||
| ``` | ||
| The sass file want to use the namespace can import it like this. | ||
| ```css | ||
| @import "ns"; | ||
| ``` | ||
| Now the component's style will wrap in this namespace to prevent the future conflict. | ||
| Awesome! |
+11
-3
| var assert = require('assert'); | ||
| var generateNS = require('./index').generateNS; | ||
| var generateNSFile = require('./index').generateNSFile; | ||
| var generateJsFile = require('./index').generateJsFile; | ||
| var generateSassFile = require('./index').generateSassFile; | ||
@@ -9,3 +10,3 @@ describe('generateNS', function() { | ||
| console.log(value); | ||
| assert.ok(/^ns-gen-0\.1\.0/.test(value)); | ||
| assert.ok(/^ns-gen-0\.3\.0/.test(value)); | ||
| }); | ||
@@ -15,5 +16,12 @@ | ||
| var value = generateNS(); | ||
| var content = generateNSFile(); | ||
| var content = generateJsFile(); | ||
| assert.equal('module.exports = "' + value + '";', content); | ||
| }); | ||
| it('should generate the valid sass file content', function() { | ||
| var value = generateNS(); | ||
| var content = generateSassFile('test'); | ||
| console.log(content); | ||
| assert.equal('$test: ' + value + ';', content); | ||
| }); | ||
| }); |
6558
38.21%76
46.15%126
43.18%