先了解如下三方库
Concurrently : 同时执行多个命令
https://www.npmjs.com/package/concurrently
image.png
fs-extra : 文件操作库
https://www.npmjs.com/package/fs-extra
image.png
minimatch 用来模式匹配字符串的库。
https://www.npmjs.com/package/minimatch
image.png
node-watch 监听目录下的文件变化
https://www.npmjs.com/package/node-watch
image.png
rimraf 强制删除文件的库
https://www.npmjs.com/package/rimraf
image.png
根据以上三方可以在实现如下的 js文件 帮助我们在开发三方库中的 实现 文件监听复制功能
const path = require('path')
const fs = require('fs-extra')
const watch = require('node-watch')
const rimraf = require('rimraf')
const minimatch = require('minimatch')
function copyAndWatch (source, destination, fileGlob) {
console.log(`Cleaning "${destination}"`)
rimraf(destination, () => {
console.log(`Copying "${source}" to "${destination}"`)
fs.copy(source, destination, (err) => {
if (err) console.error(err)
})
console.log(`Watching "${source}"`)
watch(source, (filename) => {
const localPath = filename.split(source).pop()
if (matchesFile(localPath, fileGlob)) {
const destinationPath = `${destination}${localPath}`
console.log(`Copying "${filename}" to "${destinationPath}"`)
fs.copy(filename, destinationPath, (err) => {
if (err) console.error(err)
})
}
})
})
}
function matchesFile (filename, fileGlob) {
if (fileGlob == null) return true
return minimatch(path.basename(filename), fileGlob)
}
copyAndWatch(
'../trade_ui/src',
'src/temp/trade_ui'
)
js第三方库开发流程
我们开发第三方的时候,如何在开发过程中测试我们开发的内容?
首先三方库的核心功能假定为src ,我们在开发这个库过程中(其实就是开发src),库本身是跑不起来的
这是需要一个临时工程 来承载 库的核心功能的。这期间的核心问题是如何同步src里面的代码。最简单的是,我们在临时工程里面开发完毕,将src 复制
出来到 三方库作为核心代码。但不能实时同步,此时就可以用上述的文件解决这个问题。













网友评论