와 노드 패키지를 구축 ...문제 웹팩
lib.js 코드
import DemoModule from './DemoModule.jsx';
import './styles/fonts/fonts.scss';
import './styles/styles.scss';
module.exports = {
DemoModule: DemoModule,
};
Fonts.scss
@font-face {
font-family: 'Demo font';
src: url('./demo-font.otf') format('opentype');
font-weight: 300;
}
웹 팩 코드
내가 NPM 실행을 실행하면module.exports = {
entry: './src/lib.js',
target: 'node',
output: {
filename: 'index.js',
path: './lib/',
library: "libName",
libraryTarget: 'commonjs2',
},
plugins: [
***
],
module: {
loaders: [
{ test: /\.js$/, loader: 'babel-loader' },
{ test: /\.jsx$/, loader: 'babel-loader' },
{ test: /\.json$/, loader: 'json' },
{ test: /\.scss$/, loaders: ['style', 'css', 'sass'] },
{ test: /\.png$/, loader: 'url-loader' },
{ test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=10000&mimetype=application/font-woff" },
{ test: /\.[ot]tf?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'url-loader?limit=10000&mimetype=application/octet-stream' },
{ test: /\.(eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file-loader" }
]
}
};
이 명령은 lib 디렉토리에 모든 것을 컴파일하는 index.js를 만들고도 그 디렉토리에 데모 font.ots 이동을 구축 할 수 있습니다.
Direcotry는
/lib
index.js
demo-font.ots
처럼 보인다하지만 난 다른 프로젝트 node_modules에서이 패키지를 사용할 때이 www.abc.com/demo-font.ots과 실종처럼 글꼴을 찾습니다. 글꼴을로드 할 수 없다는 점을 제외하면 모든 것이 작동합니다.
이 구성에서 누락 된 사항은 무엇입니까? 당신이 데모 font.otf
의 현재 작업 디렉토리에보고를 말하고있다 그래서
src: url('./demo-font.otf') format('opentype');
기대 글꼴이 루트에 있는지 경우 다음과
다른 프로젝트에서이 패키지를 사용하는 경우 ** node_modules/libName/lib **에 위치하며 글꼴은 * * node_modules/libName/lib/demo-font.ots ** 그 패키지를 개발하고 ** npm을 실행하면 디버그 ** 명령을 실행하면 응용 프로그램이 인식되고 글꼴도로드되지만 node_module 글꼴처럼 내보낼 때 해당 경로로 인해 작동하지 않습니다 ./ – Mileris
올바른 방법으로 CSS 리소스를 찾으려면 어떻게해야합니까? 웹 응용 프로그램에서 글꼴이 root /에 있어야합니다. 하지만 그것은 node_modules에 있습니다. – Mileris
@Mileris 제가 대답했습니다. Chrome에서 Ctrl + Shift + J를 사용하여 개발자 도구를 열면 리소스가로드되거나로드되지 않으며 자바 스크립트 오류가 표시됩니다. jquery, CSS 등을 검사 할 수도 있습니다. 글꼴을 찾을 수 없으면 찾고있는 위치를 표시하므로 프로그래머와 코드를 변경할 위치에 대한 아이디어를 줄 수 있습니다. – zerohero