브라우저용 Node.js 라이브러리를 게시하는 방법은 무엇입니까? (역시 롤업 소개)
window
개체에 연결합니까, 아니면 더 나은 대안이 있습니까?그런데, 롤업을 사용하여
<script type="module">
에 대한 TypeScript를 번들로 묶기 시작했기 때문에 window
개체에 연결할 필요가 없습니다.Output of non-minified Rollup을 읽을 수 있습니다. Webpack은 그렇지 않으며 eval로 가득 차 있습니다. (Rollup의 축소된 버전도 상대적으로 읽을 수 있습니다.)
tsconfig.json
는 "module": "commonjs"
를 사용합니다(그래서 나는 ts-node
, ts-mocha
를 실행하고 esm 없이 노드용으로 게시할 수 있습니다). 하지만 rollup.config.js
는 esnext
를 사용합니다.tsc
를 사용합니다. 롤업은 제대로 할 수 없습니다. 롤업은 declaration
및 declarationMap
을 생성할 수 없습니다.// rollup.config.js
import typescript from '@rollup/plugin-typescript'
import minify from 'rollup-plugin-babel-minify'
const getConfig = ({ output, isMinify }) => {
return {
input: 'src/index.ts',
output: {
file: output,
format: 'esm',
sourcemap: true
},
plugins: [
typescript({
module: 'esnext'
}),
...(isMinify ? [
minify({
comments: false
})
] : [])
]
}
}
export default [
getConfig({ output: 'lib/index.mjs' }),
getConfig({ output: 'lib/index.min.mjs', isMinify: true })
]
package.json
가 궁금하시다면{
"main": "lib/index.js",
"module": "lib/index.mjs",
"unpkg": "lib/index.min.mjs",
"types": "lib/index.d.ts",
"files": [
"lib",
"src"
],
"scripts": {
"build": "rimraf lib && rollup -c && yarn tsc",
"tsc": "tsc -P src/tsconfig.json",
"prepack": "yarn build && yarn deploy"
}
}
tsconfig.json
{
"compilerOptions": {
"target": "ES2017",
"module": "commonjs",
"declaration": true,
"declarationMap": true,
}
}
require()
또는 node_modules에서 가져오기가 없습니다. 파타라폴 / 모든 직렬화
방법을 제공하는 한 모든 JavaScript 개체를 직렬화합니다. 나는 이미 Date, RegExp 및 Function을 제공했습니다.
특징은
Reference
이 문제에 관하여(브라우저용 Node.js 라이브러리를 게시하는 방법은 무엇입니까? (역시 롤업 소개)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/patarapolw/what-s-your-way-of-publishing-node-js-library-for-the-browser-also-introducing-rollup-4i5h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)