转译 JS 代码库的最佳实践:包含在 git 中还是在安装过程中生成?
Best practices with transpiled JS codebase: included in git or generated during installation process?
我正在为以下对象创建一个 JS 库(使用 Babel 和 Webpack):
- node.js
- 浏览器。
是否建议在代码库中包含来自 Babel 和 webpack 的转译文件?
因为,至少对于后端而言,安装该库的另一个项目可能没有 Babel(特别是为了避免像 SyntaxError: Cannot use import statement outside a module
)
这样的问题
我想在 NPM 安装过程中生成这些分发文件,但我认为将 babel 和 webpack 从 devDependencies
移动到 dependencies
不是一个好主意 packages.json
.
项目结构是这样看的:
project-directory
|--dist
| |--index.js
|--node_modules
|--src
| |--index.js
|--package.json
|--.babelrc
玩过npm publish
后,我觉得我找到了正确的方法。
代码库应不包含dist/
目录(排除在.gitignore
中)。
发布时,npm publish
将创建一个包,其中包含您的 dist/
目录(如 git,您有一个 .npmignore
来排除您不想要的元素你的包裹)。
在 packages.json
中,main
属性 应该指向主要的转译 .js 文件。
添加 prepack
脚本将确保您的转译代码在发布新包之前是最新的。
{
"main": "dist/index.js",
"module": "src/index.js",
"scripts": {
"prepack": "npm run build",
"build": "babel src --out-dir dist"
},
"devDependencies": {
"@babel/cli": "^7.7.5",
"@babel/core": "^7.7.5",
"@babel/node": "^7.7.4",
"@babel/preset-env": "^7.7.6"
}
}
我正在为以下对象创建一个 JS 库(使用 Babel 和 Webpack):
- node.js
- 浏览器。
是否建议在代码库中包含来自 Babel 和 webpack 的转译文件?
因为,至少对于后端而言,安装该库的另一个项目可能没有 Babel(特别是为了避免像 SyntaxError: Cannot use import statement outside a module
)
我想在 NPM 安装过程中生成这些分发文件,但我认为将 babel 和 webpack 从 devDependencies
移动到 dependencies
不是一个好主意 packages.json
.
项目结构是这样看的:
project-directory
|--dist
| |--index.js
|--node_modules
|--src
| |--index.js
|--package.json
|--.babelrc
玩过npm publish
后,我觉得我找到了正确的方法。
代码库应不包含dist/
目录(排除在.gitignore
中)。
发布时,npm publish
将创建一个包,其中包含您的 dist/
目录(如 git,您有一个 .npmignore
来排除您不想要的元素你的包裹)。
在 packages.json
中,main
属性 应该指向主要的转译 .js 文件。
添加 prepack
脚本将确保您的转译代码在发布新包之前是最新的。
{
"main": "dist/index.js",
"module": "src/index.js",
"scripts": {
"prepack": "npm run build",
"build": "babel src --out-dir dist"
},
"devDependencies": {
"@babel/cli": "^7.7.5",
"@babel/core": "^7.7.5",
"@babel/node": "^7.7.4",
"@babel/preset-env": "^7.7.6"
}
}