Node.js 在React Native和x2B之间共享代码;节点
我正在使用React Native和Node.js。我想在两者之间共享代码。我的文件夹结构也是如此Node.js 在React Native和x2B之间共享代码;节点,node.js,react-native,npm,yarnpkg,Node.js,React Native,Npm,Yarnpkg,我正在使用React Native和Node.js。我想在两者之间共享代码。我的文件夹结构也是如此 myreactnativeapp/ mynodeserver/ myshared/ 在react native和node应用程序中,我包含了 package.json "dpendencies" : { "myshared": "git+https://myrepository/ugoshared.git" } 这可以通过require/import等方式包含在每个项目中。这一切都很好
myreactnativeapp/
mynodeserver/
myshared/
在react native和node应用程序中,我包含了
package.json
"dpendencies" : {
"myshared": "git+https://myrepository/ugoshared.git"
}
这可以通过require/import等方式包含在每个项目中。这一切都很好,对于生产,我很满意。(尽管我想知道更好的方法?)
我面临的问题是在开发中,它真的很慢
要填充更改的步骤包括:
#myreactnativeapp/start.sh
SOURCE=../myshared
MODULE=myshared
rm -rf ./$MODULE
mkdir ./$MODULE
find $SOURCE -maxdepth 1 -name \*.js -exec cp -v {} "./$MODULE/" \;
# create the package.json
echo '{ "name": "'$MODULE'" }' > ./$MODULE/package.json
# start the packager
node node_modules/react-native/local-cli/cli.js start
然后在my package.json中,我将脚本更新为
"scripts": {
"start": "./start.sh",
},
因此,这个过程现在正在进行中
- 脚本复制myshared/->myreactnativeapp/myshared下的所有.js文件/
- 脚本创建一个带有模块名称的package.json
Import MyModule from 'myshared/MyModule'
更新2
我的第一个想法是一直重新启动包管理器,这让人厌烦。相反,我在共享目录中创建了一个小的节点脚本来监视更改。无论何时发生更改,它都会将其复制到react本机工作目录
var watch = require('node-watch')
var fs = require('fs')
var path = require('path')
let targetPath = '../reactnativeapp/myshared/'
watch('.', { recursive: false, filter: /\.js$/ }, function(evt, name) {
console.log('File changed: '+name+path.basename(__filename))
// don't copy this file
if(path.basename(__filename) === name) {
return
}
console.log(`Copying file: ${name} --> ${targetPath+name}`);
fs.copyFile(name, targetPath+name, err => {
if(err) {
console.log('Error:', err)
return;
}
console.log('Success');
})
});
console.log(`Starting to watch: ${__dirname}. All files to be copied to: ${targetPath}`)