"scripts": {
"build": "babel src -d lib",
"start": "node --use_strict ./lib/index.js",
"watch": "nodemon lib/index.js --exec npm run build"
}
使用命令npm run watch
会导致运行以下错误命令:[nodemon] starting "npm lib/index.js run build"
我如何编写一个nodemon命令,在重新加载时,使用babel转换代码并重新加载代码?
答案 0 :(得分:6)
您只需使用babel-node
运行代码即可避免显式转换。
$ nodemon lib/index.js --exec babel-node --presets=es2015,stage-2
似乎this is the recommended方式将nodemon
用于babel
。
请注意,在--exec
development
环境时,运行localhost
会产生意想不到的副作用
答案 1 :(得分:1)
override func layoutSubviews() {
super.layoutSubviews()
progressView.cornerRadius = cornerRadius
clipsToBounds = true
addSubview(progressView)
NSLayoutConstraint.activate([
progressView.topAnchor.constraint(equalTo: topAnchor),
progressView.bottomAnchor.constraint(equalTo: bottomAnchor),
progressView.centerXAnchor.constraint(equalTo: centerXAnchor)
])
let width = frame.width
let finalProgress = CGFloat(progress) * width
let widthConstraint = progressView.widthAnchor.constraint(equalToConstant: finalProgress)
widthConstraint.priority = UILayoutPriority(rawValue: 999)
widthConstraint.isActive = true
}
Serve用于生产,使用npm start进行的工作是先进行转换,然后运行nodemon。
答案 2 :(得分:1)
有一个选项可以在“监视”模式下使用Babel构建文件,让Nodemon仅监视“构建”文件夹,并在更改编译输出后重新启动应用程序。
{
"name": "app",
"version": "1.0.0",
"private": true,
"dependencies": {},
"devDependencies": {
"@babel/cli": "^7.6.0",
"@babel/core": "^7.6.0",
"@babel/preset-env": "^7.6.0",
"nodemon": "^1.19.2"
},
"scripts": {
"build": "babel src --out-dir build --source-maps=inline --verbose",
"start": "yarn build --watch & sleep 1 && nodemon --watch build build/index.js"
}
}
此示例摘自GitHub上的GraphQL API Examples
存储库。
答案 3 :(得分:1)
"scripts": {
"build": "babel src -d lib",
"start": "node --use_strict ./lib/index.js",
"watch": "nodemon --exec \"npm run build && node lib/index.js\" -e js --ignore lib/"
}
然后运行npm run watch
。此后,每次修改源代码(.js
文件)时,nodemon将重建项目,然后重新启动服务器。
--exec
指定在文件更改时希望nodemon执行的非节点脚本(也适用于node lib/index.js
以上的节点脚本)。
-e
指定您希望nodemon观看哪些文件扩展名。
--ignore
指定要让nodemon忽略的文件/目录。此选项对于解决此问题至关重要,因为如果您不指定忽略此lib/
文件夹,则由于lib/
中的编译文件也是.js
文件,nodemon将无限重启。
答案 4 :(得分:0)
更好的选择是不使用全局安装,而是使用本地安装的软件包。这也有助于自动化构建,可能与每个12因素应用程序设计的本地机器设置相同。
"scripts": {
"watch": "node ./node_modules/nodemon/bin/nodemon.js"
}
答案 5 :(得分:0)
您可以有两个nodemon,一个用于编译,另一个用于运行代码。在package.json中,您可以执行以下操作:
"scripts": {
"serve": "nodemon --watch dist/ ./dist/index.js",
"build" : "nodemon --watch src/ --exec babel ./src --out-dir ./dist --source-maps --copy-files"
},